{ "info": { "author": "Eric R\u00e9gnier", "author_email": "utopman@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: Jython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "# Flask-AuthOOB\n\nthis library is Fask Authentication Out of the Box and make it fast and simple to add an authentication layer to a flask app for apis.\n\nThis library is based on [Flask-Security](https://pythonhosted.org/Flask-Security/) that already provides authentication tools in a very opiniated way. Flask-AuthOOB defines as many settings and routes as possible so that you can quickly implement authentication to a newly created flask app.\n\n## Implementation\n\nSo the boiler plate for Flask Autentication using this library looks like\n\n```python\nfrom flask import Flask, request\n\napp = Flask(__name__)\ndb = SQLAlchemy()\nauthoob = AuthOOB(app, db)\n```\n\nFlask app config must have defined the following values\n\n```bash\nAPP_URL # app url where redirections are made when user validates email for exemple\nAPI_URL # api url where lives this extensions routes\nSECRET_KEY # make it possible to generate salt passwords\nEMAIL_SENDER # email that appears in auth sent emails\nSENDGRID_API_KEY # Sendgrid api key to send email using this provider\n```\n\nAnd that's all !\n\n## Library options\n\nit is possible to init library at the right time like this\n\n```python\n# With other extensions\nauthoob = AuthOOB()\n\n# Later in code when the context is ready\nauthoob.init_app(app, db)\n```\n\nThen you can reach Authentication objects from authoob instance. for exemple let query users table :\n\n```python\nfrom app import authoob\nauthoob.User.query.filter_by(email='armin.ronacher@pocoo.org').count()\n```\n\nAvailable variables in the **authoob** instance are:\n\n```python\nauthoob.User # Auth oob base user + Mixins\nauthoob.Role\nauthoob.roles_users # Relation many to many between Role and user\nauthoob.UserSchema # Marshmallow schema for user\nauthoob.RoleSchema # Marshmallow schema for roles\nauthoob.ma # Marshmallow instance\nauthoob.user_datastore # Flask Security SQLAlchemyUserDatastore instance\nauthoob.security # Flask Security Security instance\n```\n\nThese models are almost the one given in Flask-Security implementation exemple\n\n## Authentication endpoints\n\nWhen the extention is properly loaded some default routes are defined as following:\n\n```javascript\n{\n method: 'POST',\n route: '/authoob/register',\n payload: {\"email\": \"register@mail.com\", \"password1\": \"1Password\", \"password2\": \"1Password\"},\n success_response: {token: 'AJWT token'},\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'POST',\n route: '/authoob/login',\n payload: {\"email\": \"register@mail.com\", \"password\": \"1Password\"},\n success_response: {token: 'AJWT token'},\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'GET',\n route: '/authoob/logout',\n success_response: {token: 'AJWT token'},\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'GET'\n route: '/authoob/token'\n headers: {\"Authentication-Token\": 'AJWT token'}\n success_response: {token: 'AJWT token'},\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'GET'\n route: '/authoob/profile'\n headers: {\"Authentication-Token\": 'AJWT token'}\n success_response: 'serialized user data',\n fail_response: {code: '401', message: 'message'}\n}\n\n{\n method: 'GET'\n route: '/authoob/profile/'\n success_response: 'serialized user data',\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'PUT'\n route: '/authoob/profile'\n payload: {\"username\": \"utopman\", \"firstname\" : \"eric\", \"lastname\" : \"R\"] //default ones, use your own\n success_response: 'serialized user data',\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'PUT'\n route: '/authoob/reset/password'\n payload: {\"password1\": \"newPassword\", \"password2\": \"newPassword\"}\n success_response: 201,\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'PUT'\n route: '/authoob/reset/password/token'\n payload: {\"password1\": \"newPassword\", \"password2\": \"newPassword\", \"token\": \"\"}\n success_response: 204,\n fail_response: {code: '4xx', message: 'message'}\n}\n\n{\n method: 'POST'\n route: '/authoob/activate/'\n success_response: 201,\n fail_response: {code: '4xx', message: 'message'},\n description: 'The route to call from registration mail url'\n}\n```\n\n## Add authenticated route to the rest of the application\n\nIn the rest of the api, define protected routes using Flask-Security JWT mechanism\n\n```python\nfrom flask_security.decorators import auth_token_required\n\n@app.route('/my_route')\n@auth_token_required\ndef my_route():\n return jsonify({\"a\": \"response\"})\n```\n\nAnd from the client that consumes the API, you have to set a header with the tokens in the auth routes responses, the header to use is the one defined by Flask-Security (it is also possible to change the header name defining the key in flask configuration). The header is defined by default in the configuration with the value **SECURITY_TOKEN_AUTHENTICATION_HEADER** to `Authentication-Token`\n\n## Other options\n\nIt is possible to change route prefix from authoob to whatever you want (and is a valid url string) by defining a custom route prefix on extention initialization\n\n```python\nauthoob = AuthOOB(app, db, prefix=\"another_auth_prefix\")\n```\n\nIt is possible to extend the User model by setting a _CustomUserMixin_ property on extention instanciation\n\n```python\nclass CustomUserMixin:\n test_field = db.Column(db.String)\n extra_updatable_fields = [\"test_field\"]\n extra_exposed_fields = [\"test_field\"]\n\nauthoob = AuthOOB(app, db, CustomUserMixin=CustomUserMixin)\n```\n\nThis will add the `test_field` field to the user , allows it's update and serialize it's value on `/authoob/profile` calls\n\n## Hooks\n\nThere are available hooks in this library that make it possible to add behaviors at many points of the security layer interaction.\n\nFor exemple, let say you want to add an extra behavior on a user registeration, you will have to do the following\n\n\n```python\n# Define your own custom hook class\nclass CustomHooks:\n # Add hook method on register action\n def post_register(self, context):\n #\u00a0There is for each hook a specific context object that is a dict\n #\u00a0with what context looks appropriate depending on the hook\n # For exemple in the post_register hook, ths context will be {\"user\": , \"payload\" : request.json}\n try:\n role_name = \"custom_user_role\" if context[\"payload\"][\"type\"] == 1 else \"customer\"\n role = authoob.Role.query.filter_by(name=role_name).one()\n except Exception:\n abort(400)\n user = context[\"user\"]\n user.roles.append(role)\n db.session.add(user)\n db.session.commit()\n```\n\nAnd you have to register your custom hooks class in flask-AuthOOB instance\n\n```python\nauthoob.init_app(\n app,\n db,\n # Note that hook is an instance\n custom_hooks=CustomHooks(),\n)\n```\n\nAnd again that is all.\n\nThere are hooks for each action (endpoint) that authoob provides with a specific context for **pre** and **post** action. So the following document describes all possibles hooks :\n\n```yaml\n- name: pre_register\n context-dict:\n - name: payload\n content: request.json content\n\n- name: post_register\n context-dict:\n - name: user\n content: newly created user\n - name: payload\n content: request.json content\n- name: mail_register\n context-dict:\n - name: user\n content: user\n - name: mail_provider\n content: mail_provider\n\n- name: pre_login\n context-dict:\n - name: payload\n content: request.json content\n\n- name: before_login\n context-dict:\n - name: payload\n content: request.json content\n - name: user\n content: session user being logged in\n\n- name: post_login\n context-dict:\n - name: user\n content: session user\n - name: payload\n content: request.json content\n\n- name: pre_profile\n context-dict:\n - name: user\n content: session user\n\n- name: post_profile\n context-dict:\n - name: user\n content: session user\n - name: response\n content: dumped user profile json response\n\n- name: pre_user_profile\n context-dict:\n - name: user_id\n content: user id parameter\n\n- name: post_user_profile\n context-dict:\n - name: user\n content: user instance from user_id parameter\n - name: response\n content: dumped user profile json response\n\n- name: pre_token\n context-dict:\n - name: user\n content: session user\n\n- name: post_token\n context-dict:\n - name: user\n content: session user\n - name: response\n content: dumped token json response\n\n- name: pre_activate\n context-dict:\n - name: token\n content: activation token\n\n- name: post_activate\n context-dict:\n - name: user\n content: session user\n\n- name: already_activated\n context-dict:\n - name: user\n content: activated user being checked\n\n- name: pre_reset_auth\n context-dict:\n - name: payload\n content: request.json content\n\n- name: post_reset_auth\n context-dict:\n - name: payload\n content: request.json content\n - name: user\n content: session user\n\n- name: pre_reset_token\n context-dict:\n - name: token\n content: token parameter (from ask reset mail)\n\n- name: post_reset_token\n context-dict:\n - name: user\n content: user which password is reset\n - name: token\n content: token parameter (from ask reset mail)\n\n\n- name: pre_update_profile\n context-dict:\n - name: user\n content: session user\n - name: payload\n content: request.json content\n\n- name: post_update_profile\n context-dict:\n - name: user\n content: session user\n - name: payload\n content: request.json content\n - name: response\n content: dumped user profile json response\n\n- name: pre_logout\n context-dict:\n - name: user\n content: user being logout\n\n- name: post_logout\n context-dict: null\n```\n\n## Mail hook system\n\nMail default provider is based on Sendgrid api when an API key is provided on the flask config environment.\n\nIt is then possible to manage emails like this :\n\n```python\nclass MailHooks:\n def mail_register(self, context):\n context[\"mail_provider\"].send_mail(\n to_emails=['me@home.fr', 'you@anywhere.com', context[\"user\"].email],\n subject=\"Email validation\",\n html='

Super email template override

'\n )\n return True # Returning true will make the authoob lib use this code and not trigger default email sending\n```\n\nnote: Other mail hook will arrive soon.\n\n\n## Configuation options\n\n * ``PREVENT_MAIL_SEND`` : prevent send email, usefull for testing enviroments\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "web,authentification,jwt,flask,api", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Flask-AuthOOB", "package_url": "https://pypi.org/project/Flask-AuthOOB/", "platform": "", "project_url": "https://pypi.org/project/Flask-AuthOOB/", "project_urls": null, "release_url": "https://pypi.org/project/Flask-AuthOOB/0.0.33/", "requires_dist": [ "Flask", "flask-sqlalchemy", "sendgrid", "Flask-Marshmallow", "validate-email", "password-strength", "bcrypt", "psycopg2-binary", "marshmallow-sqlalchemy", "flask-security-too (==3.2.0rc1)" ], "requires_python": "", "summary": "Implement quiclky authentification in flask using postgres and flask-security", "version": "0.0.33" }, "last_serial": 6000076, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6ac0f9b9e0a005a572dde1206d38337f", "sha256": "ed978e7ab8230d40bf25adedc40bf6a51d6577827763ce8f5fb929026fe094e5" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6ac0f9b9e0a005a572dde1206d38337f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6413, "upload_time": "2019-04-24T16:02:52", "url": "https://files.pythonhosted.org/packages/89/ff/1b9d37f3ab9e4a250315e97dd010a1c091b62eea57532c45c03046facf6b/Flask_AuthOOB-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c56e7d8ad4ef38589f56e76dc5f55a2", "sha256": "bb5eb85637ea6133ae0cf2fcaaaa09c78a75e2be17f317fe5bc89d687d5663be" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2c56e7d8ad4ef38589f56e76dc5f55a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6284, "upload_time": "2019-04-24T16:02:54", "url": "https://files.pythonhosted.org/packages/0c/60/56fe2cb885eb37ca31cad82317d6ae7cc8e1329f785d9cdbbfad1892d57a/Flask-AuthOOB-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "c0c271fc78c8b2bf7ac4b8782080f64e", "sha256": "4193cc3a6f05a37e14110feb634be3d58d7954fa3df47e3532d2b21373c8dc41" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0c271fc78c8b2bf7ac4b8782080f64e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8147, "upload_time": "2019-04-30T21:21:25", "url": "https://files.pythonhosted.org/packages/87/9c/510791f230eea7d7ce11fff9f4ff0210a013610fadc8eac626d2390cb7e0/Flask_AuthOOB-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "981ca68974bcf75c451c2c20edf4c064", "sha256": "dda89d0cecef96af184b5875f8ad6143b8e21f944a5cc3e88c516a9a12140ef9" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.10.tar.gz", "has_sig": false, "md5_digest": "981ca68974bcf75c451c2c20edf4c064", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7217, "upload_time": "2019-04-30T21:21:27", "url": "https://files.pythonhosted.org/packages/ff/57/58a33b3e910063578928425a57d1c88025d4599ece9c597c8e39d90d30a9/Flask-AuthOOB-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "74e9531c1aeff21829f2a7f7d9cc55a7", "sha256": "aa25ecc2df434874240f88a465c4431a0583affa5c31df4b78f254a071841ec5" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74e9531c1aeff21829f2a7f7d9cc55a7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8278, "upload_time": "2019-05-03T09:13:33", "url": "https://files.pythonhosted.org/packages/8d/e0/d5d2622f7fb283d7147367af701091361b9ae400e53918fff4ec6158b5c2/Flask_AuthOOB-0.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0861b546a84be79a5532f9abac4295e2", "sha256": "ff53cf834fa5ae8ecc1e90f2e70591e3c1deae0ac5458cc5943b5600492083e0" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.11.tar.gz", "has_sig": false, "md5_digest": "0861b546a84be79a5532f9abac4295e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7346, "upload_time": "2019-05-03T09:13:35", "url": "https://files.pythonhosted.org/packages/dc/ff/5da78956cf999d528196119c7896f1ad35408f017cade181b19ea01581e6/Flask-AuthOOB-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "4801bd04a60f50fb004efd77b822ce5f", "sha256": "de44e1e0257fe7bd32f5b501ab2f6adad09b979ac072884f530cf1609e116bff" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4801bd04a60f50fb004efd77b822ce5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9246, "upload_time": "2019-05-03T13:51:50", "url": "https://files.pythonhosted.org/packages/76/9b/91bae59e7d022fbe8e2f464e2d878b3780f01bb8cdea80f7f0817ab01a49/Flask_AuthOOB-0.0.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86dde563f7f68c169987f96c0c18b23f", "sha256": "224bc199e3ac7ad3d27253429612a836623e6376b46809e9f7c619b3b2d0eb99" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.12.tar.gz", "has_sig": false, "md5_digest": "86dde563f7f68c169987f96c0c18b23f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8724, "upload_time": "2019-05-03T13:51:51", "url": "https://files.pythonhosted.org/packages/d0/0f/bdd5428bcf4bc33ab346d071bf44a03ae129bc325124dcfe327411c2f3e5/Flask-AuthOOB-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "4d5d3149a9e846c5a6be3bfac1a37f79", "sha256": "441b64bf99480c4f9c6a9604e7e28d25b8a5d1f5419e2665bb49b0e09a2d22ec" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d5d3149a9e846c5a6be3bfac1a37f79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9332, "upload_time": "2019-05-05T20:14:21", "url": "https://files.pythonhosted.org/packages/0a/70/fb0af056612f8fb310226b244dd18f6ee7e122d8853f5e9705f2d44cf0dc/Flask_AuthOOB-0.0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "245f2c5935b61f0b95a9700bd7705a08", "sha256": "c77b18c970f3e02a9966eeb324047f17876d528b9311a19ce11cd733fa22908a" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.13.tar.gz", "has_sig": false, "md5_digest": "245f2c5935b61f0b95a9700bd7705a08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8780, "upload_time": "2019-05-05T20:14:24", "url": "https://files.pythonhosted.org/packages/32/2b/f4c76b7fc3638580f954df2ea0da7d248bbcca33f6e451765a9470db07f3/Flask-AuthOOB-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "6c0c3f109cf28f7173530a2b22edf4a4", "sha256": "d5fc2024aed01fa07e4fd71e205a3476138bbbae5a7a9e8561ae2bcacecb36e1" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c0c3f109cf28f7173530a2b22edf4a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9331, "upload_time": "2019-05-05T20:28:09", "url": "https://files.pythonhosted.org/packages/2a/95/4b2f29ea70b3132a10dc42845cf07d09f480d464e40c9f123d29fe0b3e34/Flask_AuthOOB-0.0.14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05c251f85b38abd2d9a786fa75ca9f66", "sha256": "f885926dcac77320bce9e3719891ce4e8f8b9de747520ea4e98fd2d59a1ca4bd" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.14.tar.gz", "has_sig": false, "md5_digest": "05c251f85b38abd2d9a786fa75ca9f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8778, "upload_time": "2019-05-05T20:28:12", "url": "https://files.pythonhosted.org/packages/02/57/4d45d05d62c5f6ca11e13058ac843345deecd62be787f8ded6ec35566c42/Flask-AuthOOB-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "65c05b2ca9c62940b2d8c7127e938438", "sha256": "f9623579520e8ec7e26e94f208dbc727a92edb508e2e10d084dd13d8d589e66d" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65c05b2ca9c62940b2d8c7127e938438", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9388, "upload_time": "2019-05-06T15:11:15", "url": "https://files.pythonhosted.org/packages/67/f4/ccd6d113372691a66dc0d31994efe6d7611d82018579ccb3c733bf5eed78/Flask_AuthOOB-0.0.15-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc84f7179b0f8dbe3b0f684e280a07cb", "sha256": "d3930f7df5d0940138cc4f185e56d5cebb085e192b300f68a1f450aff30198ce" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.15.tar.gz", "has_sig": false, "md5_digest": "cc84f7179b0f8dbe3b0f684e280a07cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8848, "upload_time": "2019-05-06T15:11:18", "url": "https://files.pythonhosted.org/packages/f7/29/585426c4ba6263e8e5a574161e16b0132acfac3e1ef7893fca26a997159d/Flask-AuthOOB-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "8b11dd9b7243eac3b4d0674fbd9d46cb", "sha256": "5d1e79e99b3f04f42800a03a86c124ca78346fbdb2a33f5a8b0a2ecbd448302b" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b11dd9b7243eac3b4d0674fbd9d46cb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9396, "upload_time": "2019-05-09T22:43:01", "url": "https://files.pythonhosted.org/packages/9f/dc/1c5953754f354e30a6a78ab37fe3171768d9fbb9b82f1e8ef49c8d1d6b60/Flask_AuthOOB-0.0.16-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "583e38f913476a9aa5c9bf555c457c55", "sha256": "d9c29e004072c04fa890d34acc125beda86b622f0304f58fae1e3599236783c9" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.16.tar.gz", "has_sig": false, "md5_digest": "583e38f913476a9aa5c9bf555c457c55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8859, "upload_time": "2019-05-09T22:43:03", "url": "https://files.pythonhosted.org/packages/c4/2b/323cfb45392f8577011ea7121d65aa586838abc859a8b0ec8d73ced730f1/Flask-AuthOOB-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "2653d1f093fa78165f8794ac9cfe9898", "sha256": "c971d66697f8e50a4b5ebe021b6cdac63f6780d83dc797f3627f1905896a624b" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.17-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2653d1f093fa78165f8794ac9cfe9898", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9423, "upload_time": "2019-05-18T08:38:06", "url": "https://files.pythonhosted.org/packages/f9/64/37daf65ec328a26c42fd619964047055cdea0fe9523739ed0f52e228bce4/Flask_AuthOOB-0.0.17-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4722a70f1405779167e7e1ffdbc0970d", "sha256": "78038993960879c2069c0d5e53588225962fb6d68e32c82639b728cb43762462" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.17.tar.gz", "has_sig": false, "md5_digest": "4722a70f1405779167e7e1ffdbc0970d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8889, "upload_time": "2019-05-18T08:38:08", "url": "https://files.pythonhosted.org/packages/81/3c/a9d230286e3259831897fe9a5b18465916099027296c2def48fb3f2d7069/Flask-AuthOOB-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "b0200a8af992f12534032cb267a807dd", "sha256": "20aebe8902b8bf9d60820acb141408fc00d359527a2d346f829e93507dbb34f7" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b0200a8af992f12534032cb267a807dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9492, "upload_time": "2019-05-21T15:12:00", "url": "https://files.pythonhosted.org/packages/be/91/8a883afbe00ff6068c7bc33ebbe236290141f4a19e3b6cbf06ef1529a40d/Flask_AuthOOB-0.0.18-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c7e4ceb53cc3e90a1ad2ba986911ba9", "sha256": "dab132222ddcaa016adf551a4064476e95017c91bd1279fd48688410d1c7ccfc" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.18.tar.gz", "has_sig": false, "md5_digest": "5c7e4ceb53cc3e90a1ad2ba986911ba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8951, "upload_time": "2019-05-21T15:12:02", "url": "https://files.pythonhosted.org/packages/a8/bb/ef82dca2e8ca1345447f0aa5279de2daccb4535b9a8ac269ec5f07acb7c3/Flask-AuthOOB-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "b66e745e954681eaf1dfab62f515bcb5", "sha256": "10acc92423d1f5093eeb7c455ff32f88c499ca7cba50115c762d6e1871b74617" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.19-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b66e745e954681eaf1dfab62f515bcb5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9542, "upload_time": "2019-05-22T14:29:20", "url": "https://files.pythonhosted.org/packages/14/1e/4194ec406ca822cefe98e494ecebb26615cdbf8d8018e3d8dc54fd9e22ba/Flask_AuthOOB-0.0.19-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1481382d180dc734327b3f883349648", "sha256": "c9d7794e62e92a8aa7446e919630667ceb39420cd4ea7ec76d1d1e2fe85bdca3" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.19.tar.gz", "has_sig": false, "md5_digest": "c1481382d180dc734327b3f883349648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8998, "upload_time": "2019-05-22T14:29:22", "url": "https://files.pythonhosted.org/packages/66/64/28d9a623e516ef6e5069b820e4226d043dcbb7948c1595c40e3fabf7e098/Flask-AuthOOB-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "120dd4abea13e5df51db8007ebcebc46", "sha256": "d6ba30bcc3d947ab7b91799500cdb2446cbac855f034a80fc7b27eed4de68c35" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "120dd4abea13e5df51db8007ebcebc46", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6851, "upload_time": "2019-04-24T16:21:17", "url": "https://files.pythonhosted.org/packages/94/f2/4694402cf91d31e1b97cdfcca277b055c9b55c308a021bd22c8815c564f0/Flask_AuthOOB-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01454174bbc12da19e6ec8acfa65fd3e", "sha256": "59e23b03bf34773ec9c4e3b7d49e5e562045346812d7a4b7c434c7d6b5d64016" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.2.tar.gz", "has_sig": false, "md5_digest": "01454174bbc12da19e6ec8acfa65fd3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6475, "upload_time": "2019-04-24T16:21:19", "url": "https://files.pythonhosted.org/packages/93/b6/8754288414a9b8bf67d6b2d5d155a982a514a52249610f177cdd41f7714b/Flask-AuthOOB-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "38b4950b3dad9264c5428770f17678c8", "sha256": "def0801bb8c892238acb5ad0a243081fb81e5db1f925980cea9d0fce2053df27" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.20-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38b4950b3dad9264c5428770f17678c8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9593, "upload_time": "2019-05-23T12:13:14", "url": "https://files.pythonhosted.org/packages/0b/37/919e975d4c201f3a1c742726cfd8921211fe72cee597352b14208d66b4f1/Flask_AuthOOB-0.0.20-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6405f5a97300b701fc120140fefb2f24", "sha256": "1362dae88974085374284b8d4df201ed8de825d165607567c296f60eb65739c2" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.20.tar.gz", "has_sig": false, "md5_digest": "6405f5a97300b701fc120140fefb2f24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9051, "upload_time": "2019-05-23T12:13:16", "url": "https://files.pythonhosted.org/packages/54/04/040e01b8f2b6e5c72c8cefb8a1f994a6457d4c312dc5479a17ba8888357d/Flask-AuthOOB-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "e00d492142858f61b68a72558ba5ce6c", "sha256": "ded905a787c1e519c8695b07a82cd9fa03e19ffefe0382f51f9b32b54cd4d282" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.21-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e00d492142858f61b68a72558ba5ce6c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9609, "upload_time": "2019-05-31T08:44:22", "url": "https://files.pythonhosted.org/packages/71/9e/0e15cfe98f39006be380bb7dd5ad8914b9f390eb6538530c8ddf9a1ccf71/Flask_AuthOOB-0.0.21-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21b16e47f7a5cf6a331d71f22544c5e9", "sha256": "84ff02fba2d86d86807f11d40da9f5f1ad40f98cd71e484bab75cea89000a6c6" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.21.tar.gz", "has_sig": false, "md5_digest": "21b16e47f7a5cf6a331d71f22544c5e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9067, "upload_time": "2019-05-31T08:44:24", "url": "https://files.pythonhosted.org/packages/c3/56/d8edededed6054dd5c5f2628be1490fb51e6ef224d9e21d1274f8f34bdd0/Flask-AuthOOB-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "eeab5edf80a00c05bc73c67ab8d77e6f", "sha256": "d5e881c8399d7c98d3b95db536231ea7d8dafdeb3ad0b6a5a4bbd77223ed99db" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.22-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eeab5edf80a00c05bc73c67ab8d77e6f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9641, "upload_time": "2019-06-07T00:47:21", "url": "https://files.pythonhosted.org/packages/11/09/5a4e72c015da7347b36e1a46cbc395b96d737e2ed684c2f655f885e20243/Flask_AuthOOB-0.0.22-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4014ee38f812e169ba200682846d94b7", "sha256": "3fffe3a0f6654240de312e8486f3f3c2cab9332ec425ea5f419c4a89e85ca525" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.22.tar.gz", "has_sig": false, "md5_digest": "4014ee38f812e169ba200682846d94b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9101, "upload_time": "2019-06-07T00:47:23", "url": "https://files.pythonhosted.org/packages/27/19/cc2db459b625b87b715d1eac778dda28e9b11c4b9183e9f0749a6348e445/Flask-AuthOOB-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "05c32fec192a5358f1067ff32d27c4bf", "sha256": "1a51922293bd8abebcb34eec10dfe80a5c1dc6d9b074232bb1f912df1339145f" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.23-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05c32fec192a5358f1067ff32d27c4bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10063, "upload_time": "2019-06-22T22:41:30", "url": "https://files.pythonhosted.org/packages/e5/d7/1bf557e549f5bb7c230b0eab6390757b5ba8a8eac6b5ecc33c285abf488d/Flask_AuthOOB-0.0.23-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ff720fd174c6a2977b2ac5678520571", "sha256": "d11ef8e9f61545cfa7ba17487fb769769f4eb4379723f93220eed513d5fc768e" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.23.tar.gz", "has_sig": false, "md5_digest": "6ff720fd174c6a2977b2ac5678520571", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9619, "upload_time": "2019-06-22T22:41:32", "url": "https://files.pythonhosted.org/packages/63/f2/474831659903636c9e1678812079c2c86bd37781f7bc357961e92c68644b/Flask-AuthOOB-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "30825ff2b1c74f6b23f76a4671d13213", "sha256": "5c63e0d7c6ea88edff3c1da9d1f12b91dc4efb0dc9c59b6f39592129275b0227" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.24-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30825ff2b1c74f6b23f76a4671d13213", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10066, "upload_time": "2019-06-22T22:47:28", "url": "https://files.pythonhosted.org/packages/6f/5a/6b0de591f6fb75ab398fa03876847a9d3e3dad5f7a52f61613b281cbaad0/Flask_AuthOOB-0.0.24-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b19fb4155592a5c965e011504db4e80a", "sha256": "99bf5f1e61cd87af9643455255357b0075418c7cca03f62f16a51388d92452a4" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.24.tar.gz", "has_sig": false, "md5_digest": "b19fb4155592a5c965e011504db4e80a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9613, "upload_time": "2019-06-22T22:47:29", "url": "https://files.pythonhosted.org/packages/db/1d/12fd5edca2c0efb22189a2619444cbf964abdd19741f33c3f04a76b1c4ed/Flask-AuthOOB-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "0307c016498a3973819d2e883c3f0b5e", "sha256": "ff79056532c40a193d9dd314a33c4a27d598a9da4cf55a67650b1cdcb19f2a0d" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.25-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0307c016498a3973819d2e883c3f0b5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10123, "upload_time": "2019-09-07T18:03:48", "url": "https://files.pythonhosted.org/packages/31/fc/bb689208cfd1e05d92e55ad649c8121208071435506fc7af74f44c0573dc/Flask_AuthOOB-0.0.25-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c7551e7810f0094ff0345c5de7ca026", "sha256": "ef6a195460cc6929d49843eda85a8f28c8892837fd5f5f9235a7bb0d87db8df1" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.25.tar.gz", "has_sig": false, "md5_digest": "4c7551e7810f0094ff0345c5de7ca026", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9773, "upload_time": "2019-09-07T18:03:50", "url": "https://files.pythonhosted.org/packages/8f/cf/bec6328a086c3ee1eaf3b872b0169201207d33be19b4e968bfcf28be6335/Flask-AuthOOB-0.0.25.tar.gz" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "4c8ee2e119ec62eb9e3782856cd9e81e", "sha256": "48b6318056109d42b3eae1857b42e24ed721e9396780bea42f688d4dffe6405a" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.26-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c8ee2e119ec62eb9e3782856cd9e81e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10182, "upload_time": "2019-09-09T11:12:54", "url": "https://files.pythonhosted.org/packages/9f/17/0b4fcfa442b5fa15759e8660d30aa20cedd4dde25794a8ccec366e361a32/Flask_AuthOOB-0.0.26-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c3a4a07ba9d2c27a809f912ea7b7a6f", "sha256": "68434d2ad5ce2e34a0da0485fa4112f27a4941d713f3395c6fe6b4a9bd1c9efb" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.26.tar.gz", "has_sig": false, "md5_digest": "3c3a4a07ba9d2c27a809f912ea7b7a6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9834, "upload_time": "2019-09-09T11:12:56", "url": "https://files.pythonhosted.org/packages/bd/21/b6322a9f3fc11045ca1ad6b91c90e1dccfc8da31661f5315f3ef5172dd8e/Flask-AuthOOB-0.0.26.tar.gz" } ], "0.0.27": [ { "comment_text": "", "digests": { "md5": "2ac4425d5eb50b09621890d99d9dd90d", "sha256": "94e998aedc1dcfd96f5127d003df4f492c651fe1b2c029cf188f8e83e1d7d7ed" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.27-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ac4425d5eb50b09621890d99d9dd90d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10169, "upload_time": "2019-10-08T20:45:15", "url": "https://files.pythonhosted.org/packages/43/33/e82c84193f824f6dc5dc40f4641f910cbfa1f3089ebd1cffe095312e9571/Flask_AuthOOB-0.0.27-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "714fab01b7f53e2c4fbf3dcd49ebefca", "sha256": "e17333b1cf7f6e0e38a73f82b9cd12f9a04bc7e8eeeffe0dcf30bfa4d6bec7d8" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.27.tar.gz", "has_sig": false, "md5_digest": "714fab01b7f53e2c4fbf3dcd49ebefca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9834, "upload_time": "2019-10-08T20:45:17", "url": "https://files.pythonhosted.org/packages/e8/f7/26a0d3488ad61f8d7bc8de17ac2eb5f7910cb05378f81e32829e4e4dc5f2/Flask-AuthOOB-0.0.27.tar.gz" } ], "0.0.28": [ { "comment_text": "", "digests": { "md5": "8f2c5e76822e548a06c7923af12aa769", "sha256": "3bad4d7045fba8d76df14c3f6258c411b1e6ecb18ccf4881d39b6eef95c53daf" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.28-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f2c5e76822e548a06c7923af12aa769", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10193, "upload_time": "2019-10-14T12:50:31", "url": "https://files.pythonhosted.org/packages/90/25/af11a2abb79b9e454b237cf10652096c99f8aa36d16581cfd38e0fa5974b/Flask_AuthOOB-0.0.28-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8070159252c34c2dfb1fe0f7d623d68", "sha256": "10a957857b5879cf23d86ca50eb3f2146de4bd4fb61a3abe1c1f81dcc377c439" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.28.tar.gz", "has_sig": false, "md5_digest": "e8070159252c34c2dfb1fe0f7d623d68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9875, "upload_time": "2019-10-14T12:50:33", "url": "https://files.pythonhosted.org/packages/1e/65/38103fb81d45f8189fb5c6f24c5103a5ada88dc913e158c7e41e51543212/Flask-AuthOOB-0.0.28.tar.gz" } ], "0.0.29": [ { "comment_text": "", "digests": { "md5": "80393c0a7d329c5117207b0bb87046fa", "sha256": "5420f2e2d5060de3c5b326f45a64b8bf860247847597ac3e85341e917f211823" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.29-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80393c0a7d329c5117207b0bb87046fa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10337, "upload_time": "2019-10-19T08:36:33", "url": "https://files.pythonhosted.org/packages/6b/52/8b0439cdbe5e3d6522460d2fe28e05da7aece99d2cf2fa3146514caae2cb/Flask_AuthOOB-0.0.29-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "477f0da65014a46b02de601ad5cb4759", "sha256": "e461a04061398fd3dbb1168bddf191d8e1aae2a09bfcc92d9406ef117429f2c2" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.29.tar.gz", "has_sig": false, "md5_digest": "477f0da65014a46b02de601ad5cb4759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9952, "upload_time": "2019-10-19T08:36:35", "url": "https://files.pythonhosted.org/packages/6a/dd/16628c71513ddecefee4ef125c7bc9164d282955c6a2ca9f03a667e1a70c/Flask-AuthOOB-0.0.29.tar.gz" } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "2f1e33acfa9aa7d5d207de0a61f5e854", "sha256": "f6cc3b4415e428904eb5fdeb850e5b3d42e4930c0dab366e112cc46c3e1d0a08" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.30-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f1e33acfa9aa7d5d207de0a61f5e854", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10249, "upload_time": "2019-10-19T10:39:44", "url": "https://files.pythonhosted.org/packages/e8/84/cedf06695484aa7f8c99290392160bfe25206b5fb2fe275650aed523e076/Flask_AuthOOB-0.0.30-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bacc023467895331ed5fac04e653ad25", "sha256": "a31bb16596a077b0a6e3fd480a73d67c232a4eef87a55f52fe43f45731a70916" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.30.tar.gz", "has_sig": false, "md5_digest": "bacc023467895331ed5fac04e653ad25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9897, "upload_time": "2019-10-19T10:39:46", "url": "https://files.pythonhosted.org/packages/37/e3/d257a63bde179df9ff47d5c86ec0367cd39468d34dd707860e7c3fe32643/Flask-AuthOOB-0.0.30.tar.gz" } ], "0.0.31": [ { "comment_text": "", "digests": { "md5": "8fe0bd56f9150ec4cce849831417d803", "sha256": "4babfe0f2b7c9da4f1149414cffa769b60a399b4d208be24b76b62a1f1b10bef" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.31-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8fe0bd56f9150ec4cce849831417d803", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10225, "upload_time": "2019-10-19T11:27:52", "url": "https://files.pythonhosted.org/packages/86/18/5d3175f5442f2f7066df21feb5cfc4839a5e2c9850a8c5972d32e3f557cd/Flask_AuthOOB-0.0.31-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71fbdb5e990a1a6587b467bb0142d114", "sha256": "f2ba23ee688520eb80f160cbc2f503e5d9b66bcdd8964eb6696e11481b87623f" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.31.tar.gz", "has_sig": false, "md5_digest": "71fbdb5e990a1a6587b467bb0142d114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9890, "upload_time": "2019-10-19T11:27:55", "url": "https://files.pythonhosted.org/packages/3b/0b/155ba043750c93cc073e29470bcd8a9ec0c81fec0fb45b7f3edf11976504/Flask-AuthOOB-0.0.31.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "c934e45c2a078a61a594c4ade8d962bf", "sha256": "312a91545545156988a7f272ca63555dae270a93cfa16b58269a723f2035a146" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.32-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c934e45c2a078a61a594c4ade8d962bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10274, "upload_time": "2019-10-19T14:36:03", "url": "https://files.pythonhosted.org/packages/8a/30/3e0c3c4281d889c6e4ac63bf03abed01c71e087e3aa3ec80bfe7a7257179/Flask_AuthOOB-0.0.32-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c7ef04f055825352ea0bbfcb31a4f7d", "sha256": "2ca062cd9fd5c2d11597416ea7a17bb5af42a88a0da38373eaa0295654d913e0" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.32.tar.gz", "has_sig": false, "md5_digest": "5c7ef04f055825352ea0bbfcb31a4f7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9939, "upload_time": "2019-10-19T14:36:06", "url": "https://files.pythonhosted.org/packages/c9/87/1504342d5bc6e1ec32a7d817acb6162a210e6853e6364afa3e598ce7f9a4/Flask-AuthOOB-0.0.32.tar.gz" } ], "0.0.33": [ { "comment_text": "", "digests": { "md5": "63dcf49612407a0000bf93e194f2249a", "sha256": "233f5d01af766abfaab128a8e030698b37b6edbdd0a882a9896a00a949c1a71f" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.33-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63dcf49612407a0000bf93e194f2249a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10274, "upload_time": "2019-10-19T15:19:18", "url": "https://files.pythonhosted.org/packages/8f/44/e4da54e5be35d470259454a81e80ce376b5e757118028fcaf2647ac7041c/Flask_AuthOOB-0.0.33-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0a886878deecf3f334e4983e8f40462", "sha256": "f33f382960cd8089804083bad77713a46c83d81c75a7dc5b77f80e6e40565db0" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.33.tar.gz", "has_sig": false, "md5_digest": "e0a886878deecf3f334e4983e8f40462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9933, "upload_time": "2019-10-19T15:19:21", "url": "https://files.pythonhosted.org/packages/31/a0/7616925321a67096a28275b771b943f475fab3caefabe13e9e6b38df35a5/Flask-AuthOOB-0.0.33.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7b2b57853490f8dd1ba5540f30925623", "sha256": "5ddbe473567dd292e54fe5d6254d112692d7dd1bcf70adae8408b583d1bb329c" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b2b57853490f8dd1ba5540f30925623", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7273, "upload_time": "2019-04-24T19:14:29", "url": "https://files.pythonhosted.org/packages/00/1a/6dc6452bc1496c701b5406543f3277a65aca1dfad8f24c6229926752cd34/Flask_AuthOOB-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6ce58fb92fedb5cc0f80655a4355c1a", "sha256": "293f8ba4793668081646b85f8ef45bb688edf588ca65719154860a5043beba96" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f6ce58fb92fedb5cc0f80655a4355c1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6911, "upload_time": "2019-04-24T19:14:31", "url": "https://files.pythonhosted.org/packages/01/e8/02be2e9fe818d312578fa25fb1248a84b91c7e97a53895a38febc2aacc10/Flask-AuthOOB-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "41ac9eda823c83765f174abdec449db0", "sha256": "a4a24144145dc3bfee86d99bfa3d9dfeea286dc5675a4654ce47f4ec3a1cb558" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41ac9eda823c83765f174abdec449db0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7252, "upload_time": "2019-04-25T18:36:02", "url": "https://files.pythonhosted.org/packages/44/74/e4cdd9fd3a47a84b869b1a73dffc6fa8f9f87460d41a64c8ff6a48b47797/Flask_AuthOOB-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25a206dad7300eccdd0412ae4d98d3b2", "sha256": "096dd17950d3afa32444d1979363efa348b1be4c0e12b0151fe580a1e43ce697" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.5.tar.gz", "has_sig": false, "md5_digest": "25a206dad7300eccdd0412ae4d98d3b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6885, "upload_time": "2019-04-25T18:36:05", "url": "https://files.pythonhosted.org/packages/06/1e/8be7242dbafb27e2d2a6faa548ffc1b283e545d06080f6163bfc8cc46dc7/Flask-AuthOOB-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "40d1996927a230979f44e5f5a649a1e9", "sha256": "2cb1a856dfdf8fe2c60daba012fc4f8dfe7702652726915437e6f23b7c4df202" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "40d1996927a230979f44e5f5a649a1e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7249, "upload_time": "2019-04-26T10:54:03", "url": "https://files.pythonhosted.org/packages/b5/ff/63c3a277dd45090c04d380c49c3b2be3f250e410849f9197ce4dc9b4c267/Flask_AuthOOB-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37728bd18d2ff36988a72d84d3d4fc71", "sha256": "1f87cfc598712dded25873787911e5077e40ddf41dd34ce842237befec7c42db" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.6.tar.gz", "has_sig": false, "md5_digest": "37728bd18d2ff36988a72d84d3d4fc71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6841, "upload_time": "2019-04-26T10:54:04", "url": "https://files.pythonhosted.org/packages/80/bb/c827196c431bcec0e5b3aaa298af17882a9a75e94684ebae9c8aa38f635c/Flask-AuthOOB-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "f717038325cfaf2ac6d857bb059d7888", "sha256": "d7955156fb2d73aabddb432166842e77ac6ae7f8047f03693dde120f95051fc9" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f717038325cfaf2ac6d857bb059d7888", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7259, "upload_time": "2019-04-26T13:40:48", "url": "https://files.pythonhosted.org/packages/52/fd/49683498131d6713bbaceb633c6c4b469c0192e2999211c7ceee806f546f/Flask_AuthOOB-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef25ba3919b00c7e1c1c9d95b698ad1b", "sha256": "600b0a7fffbde20e651c58869de383aa1a4f8c23534e80eec06d1d6ab4b6ac2f" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.7.tar.gz", "has_sig": false, "md5_digest": "ef25ba3919b00c7e1c1c9d95b698ad1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6862, "upload_time": "2019-04-26T13:40:51", "url": "https://files.pythonhosted.org/packages/81/c6/6d6701715f99e985dbb937cf533811a43e8da300aa05bb32434d37893136/Flask-AuthOOB-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "41b476dd186958cf0bddbe3b99308b3f", "sha256": "8d6024ec31290fd61f58749bb7a2bd69b93884adfc871e67f5b228611efa81a1" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41b476dd186958cf0bddbe3b99308b3f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8133, "upload_time": "2019-04-26T15:41:35", "url": "https://files.pythonhosted.org/packages/09/1c/993264d74f58a16179201d46599f2230159614b716383c1171ce009b89d1/Flask_AuthOOB-0.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "484d54343a0806337e63bcf783066298", "sha256": "d0b9afc82bbfbb3877d4c8d62de7bab4b4779cb26755c7e84e0eb3f41c7cbc08" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.8.tar.gz", "has_sig": false, "md5_digest": "484d54343a0806337e63bcf783066298", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7218, "upload_time": "2019-04-26T15:41:39", "url": "https://files.pythonhosted.org/packages/a9/53/2b58af511012cf52ecea9f3cff50232089037e53553813cb8550823284d8/Flask-AuthOOB-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "9a7737b340b8b0453e9938cb970a6c88", "sha256": "a24cbe1e6525bc7083d13cf29a53add5ea10c175bddeb591bf190c9d50f71dea" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a7737b340b8b0453e9938cb970a6c88", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8136, "upload_time": "2019-04-30T08:17:54", "url": "https://files.pythonhosted.org/packages/8b/d7/60f188db6f268bb6adf5264ff24ab82f65c7e21e632bb6197f2b7e316839/Flask_AuthOOB-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "218ed7a72f1b06939eeb23edd8cfcce9", "sha256": "579716c899a550d2f424aada201f365086cf2d7e40d36327e549605a4101c2ed" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.9.tar.gz", "has_sig": false, "md5_digest": "218ed7a72f1b06939eeb23edd8cfcce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7228, "upload_time": "2019-04-30T08:17:59", "url": "https://files.pythonhosted.org/packages/36/53/5559165963ce4b31a6394aae8a55b33ecea1df7c2d89bc16c17d5060c670/Flask-AuthOOB-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "63dcf49612407a0000bf93e194f2249a", "sha256": "233f5d01af766abfaab128a8e030698b37b6edbdd0a882a9896a00a949c1a71f" }, "downloads": -1, "filename": "Flask_AuthOOB-0.0.33-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63dcf49612407a0000bf93e194f2249a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10274, "upload_time": "2019-10-19T15:19:18", "url": "https://files.pythonhosted.org/packages/8f/44/e4da54e5be35d470259454a81e80ce376b5e757118028fcaf2647ac7041c/Flask_AuthOOB-0.0.33-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0a886878deecf3f334e4983e8f40462", "sha256": "f33f382960cd8089804083bad77713a46c83d81c75a7dc5b77f80e6e40565db0" }, "downloads": -1, "filename": "Flask-AuthOOB-0.0.33.tar.gz", "has_sig": false, "md5_digest": "e0a886878deecf3f334e4983e8f40462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9933, "upload_time": "2019-10-19T15:19:21", "url": "https://files.pythonhosted.org/packages/31/a0/7616925321a67096a28275b771b943f475fab3caefabe13e9e6b38df35a5/Flask-AuthOOB-0.0.33.tar.gz" } ] }