{ "info": { "author": "Amine BIZID", "author_email": "amine.bizid@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Oauth2 library for python flask and restplus\n\nWith this simple library, you can authenticate clients coming from a browser (Implicit Flow) or using Bearer token (Credential flow).\nYou can manage authorization using rbac function as described here after.\n\n## Requirements\n\nInstall these requirements\n\n```text\ncryptography\nPyJWT==1.7.1\nflask-restplus\nsimple-oauth2\n```\n\n## Usage example\n\n```python\nimport os\nfrom flask import Flask\nfrom flask_restplus import Api, Resource\nfrom simple_oauth2 import OAuth\n\n\napi = Api()\napp = Flask(__name__)\napp.secret_key = os.urandom(32)\napi.init_app(app)\n\noauth_config = {\n 'well_known_url': '{well_known_url}',\n 'client_id': '{client_id}',\n 'redirect_uri': '{host:port}/signin-oidc',\n 'audience': '{audience}',\n 'scopes': '{coma separated scopes}',\n 'whitelist': ['/openbar?']\n}\n\ndef rbac(client, operation):\n print('client ', client, ' is asking for operation ', operation)\n return True\n\noauth = OAuth(app, oauth_config, rbac=rbac)\n\n# flask\n@app.route('/')\ndef slah():\n return 'Hello'\n\n\n@app.route('/hello')\n@oauth.authorize('hello')\ndef hello():\n return 'hi'\n\n\n@app.route('/openbar')\ndef openbar():\n return 'Chimay'\n\n\n# restplus\n@api.route('/toto')\nclass Toto(Resource):\n @oauth.authorize('toto')\n def get(self):\n return {'hello': 'world'}\n\n\nif __name__ == \"__main__\":\n app.run(host='0.0.0.0', debug=True)\n\n```\n\n## Contributors\n\nRegister [here](https://test.pypi.org/account/register/ )\n\nInstall required packages\n\n```bash\npython -m pip install --user --upgrade setuptools wheel\npython -m pip install --user --upgrade twine\n```\n\nPackage like this:\n\n```bash\npython setup.py sdist bdist_wheel\npython -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*\n```\n\nTest install\n\n```bash\npip install -i https://test.pypi.org/simple/ simple-oauth2\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": "https://github.com/aminebizid/simple_oauth2", "keywords": "Oauth OKTA Azure AD Authentication Authorization token implicit flow", "license": "", "maintainer": "", "maintainer_email": "", "name": "simple-oauth2", "package_url": "https://pypi.org/project/simple-oauth2/", "platform": "", "project_url": "https://pypi.org/project/simple-oauth2/", "project_urls": { "Homepage": "https://github.com/aminebizid/simple_oauth2" }, "release_url": "https://pypi.org/project/simple-oauth2/1.0.4/", "requires_dist": [ "cryptography", "PyJWT (>=1.7.1)", "Flask" ], "requires_python": "", "summary": "A simple Outh2 client", "version": "1.0.4" }, "last_serial": 5318264, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "44dac9ba280002a6d22aa57683ab0312", "sha256": "fd372e40a009b8343b5dd562a1e39ae7653f3a2fc5a37ea152b69a9490817b9a" }, "downloads": -1, "filename": "simple_oauth2-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "44dac9ba280002a6d22aa57683ab0312", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5163, "upload_time": "2019-05-26T08:03:14", "url": "https://files.pythonhosted.org/packages/4b/9f/9dc087c008de45720dfed3107b30bf1a6c5ace281292632c0f485c6fdcd6/simple_oauth2-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "922a90e18d775cc093c3fa12395acfec", "sha256": "bc979f3876562a7adcfc15a7df06e1bd76a66be79eb23f259875851fae1a649b" }, "downloads": -1, "filename": "simple_oauth2-1.0.4.tar.gz", "has_sig": false, "md5_digest": "922a90e18d775cc093c3fa12395acfec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4180, "upload_time": "2019-05-26T08:03:15", "url": "https://files.pythonhosted.org/packages/82/a7/db1e87b3605de3670b2536c35d99c884b174f628035295d6efa8e1604c6d/simple_oauth2-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "44dac9ba280002a6d22aa57683ab0312", "sha256": "fd372e40a009b8343b5dd562a1e39ae7653f3a2fc5a37ea152b69a9490817b9a" }, "downloads": -1, "filename": "simple_oauth2-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "44dac9ba280002a6d22aa57683ab0312", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5163, "upload_time": "2019-05-26T08:03:14", "url": "https://files.pythonhosted.org/packages/4b/9f/9dc087c008de45720dfed3107b30bf1a6c5ace281292632c0f485c6fdcd6/simple_oauth2-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "922a90e18d775cc093c3fa12395acfec", "sha256": "bc979f3876562a7adcfc15a7df06e1bd76a66be79eb23f259875851fae1a649b" }, "downloads": -1, "filename": "simple_oauth2-1.0.4.tar.gz", "has_sig": false, "md5_digest": "922a90e18d775cc093c3fa12395acfec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4180, "upload_time": "2019-05-26T08:03:15", "url": "https://files.pythonhosted.org/packages/82/a7/db1e87b3605de3670b2536c35d99c884b174f628035295d6efa8e1604c6d/simple_oauth2-1.0.4.tar.gz" } ] }