{ "info": { "author": "Max Rausch-Dupont", "author_email": "maxrd79@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# FastAPI-Login\n\nFastAPI-Login tries to provide similar functionality as [Flask-Login](https://github.com/maxcountryman/flask-login) does.\n\n## Documentation\nIn-depth documentation can but found at [fastapi-login.readthedocs.io](https://fastapi-login.readthedocs.io/)\nSome examples can be found [here](https://github.com/MushroomMaula/fastapi_login/tree/master/examples) \n\n## Installation\n\n```shell script\n$ pip install fastapi-login\n```\n\n## Usage\n\nTo begin we have to setup our FastAPI app:\n````python\nfrom fastapi import FastAPI\n\nSECRET = 'your-secret-key'\n\napp = FastAPI()\n````\nTo obtain a suitable secret key you can run ``import os; print(os.urandom(24).hex())``.\n\nNow we can import and setup the LoginManager, which will handle the process of\nencoding and decoding our Json Web Tokens.\n\n````python\nfrom fastapi_login import LoginManager\n\nmanager = LoginManager(SECRET, token_url='/auth/token')\n````\nFor the example we will use a dictionary to represent our user database. In your\napplication this could also be a real database like sqlite or Postgres. It does not\nmatter as you have to provide the function which retrieves the user.\n\n````python\nfake_db = {'johndoe@e.mail': {'password': 'hunter2'}}\n````\n\nNow we have to provide the ``LoginManager`` with a way to load our user. The \n`user_loader` callback should either return your user object or ``None``\n\n````python\n@manager.user_loader()\ndef load_user(email: str): # could also be an asynchronous function\n user = fake_db.get(email)\n return user\n````\n\nNow we have to define a way to let the user login in our app. Therefore we will create\na new route:\n\n````python\nfrom fastapi import Depends\nfrom fastapi.security import OAuth2PasswordRequestForm\nfrom fastapi_login.exceptions import InvalidCredentialsException\n\n# the python-multipart package is required to use the OAuth2PasswordRequestForm\n@app.post('/auth/token')\ndef login(data: OAuth2PasswordRequestForm = Depends()):\n email = data.username\n password = data.password\n\n user = load_user(email) # we are using the same function to retrieve the user\n if not user:\n raise InvalidCredentialsException # you can also use your own HTTPException\n elif password != user['password']:\n raise InvalidCredentialsException\n \n access_token = manager.create_access_token(\n data=dict(sub=email)\n )\n return {'access_token': access_token, 'token_type': 'bearer'}\n````\n\nNow whenever you want your user to be logged in to use a route, you can simply\nuse your ``LoginManager`` instance as a dependency.\n\n````python\n@app.get('/protected')\ndef protected_route(user=Depends(manager)):\n ...\n````\n\nIf you also want to handle a not authenticated error, you can add your own subclass of Exception to the LoginManager.\n````python\nfrom starlette.responses import RedirectResponse\n\nclass NotAuthenticatedException(Exception):\n pass\n\n# these two argument are mandatory\ndef exc_handler(request, exc):\n return RedirectResponse(url='/login')\n\n# This will be deprecated in the future\n# set your exception when initiating the instance\n# manager = LoginManager(..., custom_exception=NotAuthenticatedException)\nmanager.not_authenticated_exception = NotAuthenticatedException\n# You also have to add an exception handler to your app instance\napp.add_exception_handler(NotAuthenticatedException, exc_handler)\n````\n\nTo change the expiration date of the token use the ``expires_delta`` argument of the `create_access_token` method \nwith a timedelta. The default is set 15 min. Please be aware that setting a long expiry date is not considered a good practice\nas it would allow an attacker with the token to use your application as long as he wants.\n\n````python\nfrom datetime import timedelta\n\ndata = dict(sub=user.email)\n\n# expires after 15 min\ntoken = manager.create_access_token(\n data=data\n)\n# expires after 12 hours\nlong_token = manager.create_access_token(\n data=data, expires=timedelta(hours=12)\n)\n````\n\n### Usage with cookies\nInstead of checking the header for the token. ``fastapi-login`` also support access using cookies.\n\n````python\nfrom fastapi_login import LoginManager\n\nmanager = LoginManager(SECRET, token_url='/auth/token', use_cookie=True)\n````\nNow the manager will check the requests cookies the headers for the access token. The name of the cookie can be set using\n ``manager.cookie_name``.\nIf you only want to check the requests cookies you can turn the headers off using the ``use_header`` argument\n\nFor convenience the LoginManager also includes the ``set_cookie`` method which sets the cookie to your response,\nwith the recommended HTTPOnly flag and the ``manager.cookie_name`` as the key.\n````python\nfrom fastapi import Depends\nfrom starlette.responses import Response\n\n\n@app.get('/auth')\ndef auth(response: Response, user=Depends(manager)):\n token = manager.create_access_token(\n data=dict(sub=user.email)\n )\n manager.set_cookie(response, token)\n return response\n \n````\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/MushroomMaula/fastapi_login", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fastapi-login", "package_url": "https://pypi.org/project/fastapi-login/", "platform": null, "project_url": "https://pypi.org/project/fastapi-login/", "project_urls": { "Homepage": "https://github.com/MushroomMaula/fastapi_login" }, "release_url": "https://pypi.org/project/fastapi-login/1.8.1/", "requires_dist": [ "fastapi", "passlib", "pyjwt", "typing-extensions" ], "requires_python": "", "summary": "", "version": "1.8.1", "yanked": false, "yanked_reason": null }, "last_serial": 13808668, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "7bed748f29d7e3a8091b7e06ff62a254", "sha256": "d0d74694c07830a2ae61f590e5950f778a40ffae1f1c584360c30977f6820c1e" }, "downloads": -1, "filename": "fastapi_login-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7bed748f29d7e3a8091b7e06ff62a254", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8363, "upload_time": "2019-10-24T20:13:56", "upload_time_iso_8601": "2019-10-24T20:13:56.145811Z", "url": "https://files.pythonhosted.org/packages/71/4a/ba63329ba4d707cdd315fe87c87589843d79dd332f33342e45fae246e779/fastapi_login-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cfe3ab84a26c99664b2f53da4fb46ce3", "sha256": "e99fcfd8a765b76ec9e1d98ee99385af76520b4bac37b2100fbaa958c8032fff" }, "downloads": -1, "filename": "fastapi-login-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cfe3ab84a26c99664b2f53da4fb46ce3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6506, "upload_time": "2019-10-24T20:13:59", "upload_time_iso_8601": "2019-10-24T20:13:59.542779Z", "url": "https://files.pythonhosted.org/packages/bf/5b/643c49972ca227dc87227dcd89fdbf24e64b370b927bd30bdd7032cabb1d/fastapi-login-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d5409dba80373b4476524071a40c5f23", "sha256": "9ca0e9758c50682e3f2fe110dc02c439c9b6552861513191fc4678f68aa102ee" }, "downloads": -1, "filename": "fastapi_login-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5409dba80373b4476524071a40c5f23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8568, "upload_time": "2019-10-24T20:13:58", "upload_time_iso_8601": "2019-10-24T20:13:58.244003Z", "url": "https://files.pythonhosted.org/packages/12/ed/712b9bf67ecddf2485c7092bc18c9119581e8f1463e51f618f3a7fb16819/fastapi_login-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5de92ba3211efd3694c1f8e1924d8da1", "sha256": "8941612b4eff60bdb7cc9372ff8efc315b62d7824888c8b69cf4df0245ff2667" }, "downloads": -1, "filename": "fastapi-login-1.0.2.tar.gz", "has_sig": false, "md5_digest": "5de92ba3211efd3694c1f8e1924d8da1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6668, "upload_time": "2019-10-24T20:14:00", "upload_time_iso_8601": "2019-10-24T20:14:00.770961Z", "url": "https://files.pythonhosted.org/packages/59/f8/06f0bea28f90a44195522439bfaaaf9ec01677b9767f17a4e4d655d21968/fastapi-login-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "4d473f0a4a78121ac2fe45b7cde4fffb", "sha256": "f566ff249a5f1824f351d4e0135edff8d82670114d79a1ae34d3943bc7f6fffb" }, "downloads": -1, "filename": "fastapi_login-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4d473f0a4a78121ac2fe45b7cde4fffb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8042, "upload_time": "2019-10-24T20:15:55", "upload_time_iso_8601": "2019-10-24T20:15:55.119205Z", "url": "https://files.pythonhosted.org/packages/d2/f7/9d3340ed257ccb31f3ef144d11af17e7939722d6a8b0beb287e1601a0994/fastapi_login-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a9419d7b2b5a697735039053ed7ab4c9", "sha256": "25fe75d67e24075b0a4e53af940d49bf6079d97e7eaeea8fbf63d678747382c2" }, "downloads": -1, "filename": "fastapi-login-1.0.3.tar.gz", "has_sig": false, "md5_digest": "a9419d7b2b5a697735039053ed7ab4c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6239, "upload_time": "2019-10-24T20:15:57", "upload_time_iso_8601": "2019-10-24T20:15:57.954800Z", "url": "https://files.pythonhosted.org/packages/83/1d/69a79f5f857f1bcc05f239001c0299e73352e267372bccefccbf4b5f2104/fastapi-login-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "1a24530d3bc4fa879908e78186d56586", "sha256": "30e6999a3d0130dfbd33edeadfa9325fc886bf8ac5b4af5d6562e00a3d13568b" }, "downloads": -1, "filename": "fastapi_login-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1a24530d3bc4fa879908e78186d56586", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8889, "upload_time": "2019-10-27T14:14:59", "upload_time_iso_8601": "2019-10-27T14:14:59.275731Z", "url": "https://files.pythonhosted.org/packages/de/a0/a283a946d5c29d9bbdccab67605f73f9d397555018acbf4c58b6ab253936/fastapi_login-1.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4f2617d96a0a91307d1a85e3cd5b4e1d", "sha256": "712a90c527673ffd4f179ca39ccfdadd6f14d2b50f28f8dd4981ff8c3c0184ae" }, "downloads": -1, "filename": "fastapi_login-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4f2617d96a0a91307d1a85e3cd5b4e1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8815, "upload_time": "2019-11-06T16:16:31", "upload_time_iso_8601": "2019-11-06T16:16:31.918056Z", "url": "https://files.pythonhosted.org/packages/28/d9/86e9324c105000ee035f7443caf2b2f6b55ad64f6ac857b97e440cc26c69/fastapi_login-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b59d21e9e459ada73f5c01e2815cc530", "sha256": "233c7b6624dbddf7610fafb8b2e15fc916adf2578134e2f402cba09fecfb2504" }, "downloads": -1, "filename": "fastapi-login-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b59d21e9e459ada73f5c01e2815cc530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6099, "upload_time": "2019-11-06T16:16:33", "upload_time_iso_8601": "2019-11-06T16:16:33.432405Z", "url": "https://files.pythonhosted.org/packages/9f/c4/bc0f92a4db188353e928636be1dc2e86caa548ce84b53506fefc144d3c57/fastapi-login-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "f163d0e028bb993c9e39f3751dce1ec0", "sha256": "2502a6b5bd015b11bbc0f100c50cf5f73660ddecf08887c95b411af16f421b21" }, "downloads": -1, "filename": "fastapi_login-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f163d0e028bb993c9e39f3751dce1ec0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9140, "upload_time": "2020-01-10T21:40:30", "upload_time_iso_8601": "2020-01-10T21:40:30.953108Z", "url": "https://files.pythonhosted.org/packages/c8/c3/5bd753f367ea77499680b3af96326f4840b419f4165e11ab74247a501aa8/fastapi_login-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "57b80a33c5ed2347a2951ddf54bb4e34", "sha256": "c5ae14d1bcd8d76708b9c91eeba82d5bb621ac6256e391769ab148a1abc5cfc4" }, "downloads": -1, "filename": "fastapi-login-1.2.0.tar.gz", "has_sig": false, "md5_digest": "57b80a33c5ed2347a2951ddf54bb4e34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6414, "upload_time": "2020-01-10T21:40:32", "upload_time_iso_8601": "2020-01-10T21:40:32.238435Z", "url": "https://files.pythonhosted.org/packages/0d/ce/f77901676a6a28a6acf5139a2490da678cfce454dbb97e60cd2e6faad8fe/fastapi-login-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "532bcc1c177b375f8dd08e1c13c09d89", "sha256": "f8c1901a607ec38653a0a56fd231db319aec3b1c2c582564d7144f0a7b2224a5" }, "downloads": -1, "filename": "fastapi_login-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "532bcc1c177b375f8dd08e1c13c09d89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9137, "upload_time": "2020-01-10T21:42:59", "upload_time_iso_8601": "2020-01-10T21:42:59.092771Z", "url": "https://files.pythonhosted.org/packages/f6/36/8ea5c3ff6ce06c6da71014019dc73af9407c24c3ed0e9f858f14f7ba4b24/fastapi_login-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6f819bcf0b61e80781e69bd78b8a7078", "sha256": "01554a119e07b6989575c8ad749791f64d7c74e96a74a3388ce7d245e249c1e5" }, "downloads": -1, "filename": "fastapi-login-1.2.1.tar.gz", "has_sig": false, "md5_digest": "6f819bcf0b61e80781e69bd78b8a7078", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6411, "upload_time": "2020-01-10T21:43:00", "upload_time_iso_8601": "2020-01-10T21:43:00.329182Z", "url": "https://files.pythonhosted.org/packages/66/cf/d362bd1acb796b5a7f09dc4b34582bf8191173ba38bb7399a242fe04f9d4/fastapi-login-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "44ed336cb41d6e50c2c24b8340b8f061", "sha256": "c9594ed75b6e762ab57e769daab882404df7d75e50e9235e19d13da37607d7b2" }, "downloads": -1, "filename": "fastapi_login-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "44ed336cb41d6e50c2c24b8340b8f061", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7961, "upload_time": "2020-04-06T08:38:53", "upload_time_iso_8601": "2020-04-06T08:38:53.177264Z", "url": "https://files.pythonhosted.org/packages/7d/ea/ab90871a681783f3f8f4e1ed4510846496d60cb30b2e7d26cd13ef8ade16/fastapi_login-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "55049db90199578f362ee4d74a219124", "sha256": "9a3aafa4fdaffaa0d5c34441e30b54d1b2393a2b0f33b02a4391b2d7447f8504" }, "downloads": -1, "filename": "fastapi-login-1.2.2.tar.gz", "has_sig": false, "md5_digest": "55049db90199578f362ee4d74a219124", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5713, "upload_time": "2020-04-06T08:38:54", "upload_time_iso_8601": "2020-04-06T08:38:54.680627Z", "url": "https://files.pythonhosted.org/packages/2e/5a/fecdc518e6be87949077c4fcbd9a58eb5505b7591d92018e14e2ff7f4935/fastapi-login-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "273a7124d21b58a30f4175c1ee7eb258", "sha256": "a50b8ab243799420e43a0870a940f9e30c9b873f43ee5ff280f4b161056d1e49" }, "downloads": -1, "filename": "fastapi_login-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "273a7124d21b58a30f4175c1ee7eb258", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8416, "upload_time": "2020-07-08T20:29:47", "upload_time_iso_8601": "2020-07-08T20:29:47.734783Z", "url": "https://files.pythonhosted.org/packages/89/16/c0ad3e8466a16b8a5bad343886106ab0a13fba4a6e96ba34a7be1b91ee59/fastapi_login-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b7b5a4f3cde0376f439f981c76397895", "sha256": "aa103a084c478a6798f3fcf35ab0138a857c30d23f7d6970d1a7d3d58995f635" }, "downloads": -1, "filename": "fastapi-login-1.3.0.tar.gz", "has_sig": false, "md5_digest": "b7b5a4f3cde0376f439f981c76397895", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5934, "upload_time": "2020-07-08T20:29:48", "upload_time_iso_8601": "2020-07-08T20:29:48.979773Z", "url": "https://files.pythonhosted.org/packages/04/6c/b999672c8be4c79a7f55ea777d3fce37043496268d5830f1fc0a16c6e835/fastapi-login-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "6bfa29b0df92228bb7099f4c938fedf0", "sha256": "8c1e1bcaf4312dbf75be8f1c6d7db15ea33d0389dbb39aa224da117731cec516" }, "downloads": -1, "filename": "fastapi_login-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6bfa29b0df92228bb7099f4c938fedf0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7916, "upload_time": "2020-07-29T19:21:16", "upload_time_iso_8601": "2020-07-29T19:21:16.470782Z", "url": "https://files.pythonhosted.org/packages/ad/f2/dd2b5f9ee70a70b7bb9fe74427cf5f7ce56d089b75dbfa61e2d9ab1a962b/fastapi_login-1.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9e002abcf81add1c7f61aa8df0e48e8a", "sha256": "059f7976b5c620daefa0ce614d5dca0e041502634a39faa9a9f2ed1a58edeba7" }, "downloads": -1, "filename": "fastapi-login-1.4.0.tar.gz", "has_sig": false, "md5_digest": "9e002abcf81add1c7f61aa8df0e48e8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6023, "upload_time": "2020-07-29T19:21:18", "upload_time_iso_8601": "2020-07-29T19:21:18.038861Z", "url": "https://files.pythonhosted.org/packages/73/dc/a562646d3143f11fffc97b1c049bc99fa8e4c3a15f69f897ffb03293d820/fastapi-login-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "8d1cf6fc2470d05557b2dcbb3e3ae555", "sha256": "44ffc4f38a1e9329dd99fe27bc5421d59e01c6e376fc357dd1f269a5f1470100" }, "downloads": -1, "filename": "fastapi_login-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8d1cf6fc2470d05557b2dcbb3e3ae555", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8918, "upload_time": "2020-08-10T16:33:32", "upload_time_iso_8601": "2020-08-10T16:33:32.950778Z", "url": "https://files.pythonhosted.org/packages/de/05/deeb018b123b04a2c26c43fd9f54015349158adbe56f7b8e64ea53a89b56/fastapi_login-1.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ccf0018c7235d22315f2d9c45f21350", "sha256": "f2e9fbbda70f4f8b29080f01269af4efed9538f497d52be51e7d0f8f67768ae1" }, "downloads": -1, "filename": "fastapi-login-1.5.0.tar.gz", "has_sig": false, "md5_digest": "7ccf0018c7235d22315f2d9c45f21350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6703, "upload_time": "2020-08-10T16:33:34", "upload_time_iso_8601": "2020-08-10T16:33:34.341967Z", "url": "https://files.pythonhosted.org/packages/c2/16/f7d320108fe89e065eef0c1f80a4bf30e56ec1687d89faff686d8cb7039b/fastapi-login-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "e63427102473a2fa2832e660f69ce731", "sha256": "d88fb2ee2b4edc86cfa8bd52a81b45cb0fac25cfc5e61046d45a1e748fcebea5" }, "downloads": -1, "filename": "fastapi_login-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e63427102473a2fa2832e660f69ce731", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9953, "upload_time": "2020-09-12T17:52:32", "upload_time_iso_8601": "2020-09-12T17:52:32.056328Z", "url": "https://files.pythonhosted.org/packages/ae/23/54b35e3a58c10db5d58a5dda703a4dc13aeb25b7ac4dab38eab333dc7f17/fastapi_login-1.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bc177791108b79e34ae66236bb20071f", "sha256": "7b205eee3a7faeca49a061bcaf60bcf6862f550f4686a5a39c6dbe1652010411" }, "downloads": -1, "filename": "fastapi-login-1.5.1.tar.gz", "has_sig": false, "md5_digest": "bc177791108b79e34ae66236bb20071f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7775, "upload_time": "2020-09-12T17:52:32", "upload_time_iso_8601": "2020-09-12T17:52:32.979900Z", "url": "https://files.pythonhosted.org/packages/54/cc/357864e763d0f387c142559b82cacd7267bb71bedc123d1b7de41144936d/fastapi-login-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "015751c969d9bef71787af80620aa497", "sha256": "0af80eeecf5ef39488bf20bb52eb093d1e52eff2d16fc4b5e094e2de0d7b3d24" }, "downloads": -1, "filename": "fastapi_login-1.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "015751c969d9bef71787af80620aa497", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9950, "upload_time": "2020-12-23T11:57:43", "upload_time_iso_8601": "2020-12-23T11:57:43.326307Z", "url": "https://files.pythonhosted.org/packages/e4/b2/1704a713cfa3698b9e0a4e10ceb6899b112718ac383422915ad2bce3e8f8/fastapi_login-1.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fbeceeac04e61c3efb8ea484952ab4b4", "sha256": "cf3cf953daa923bfc402e986f1260b98bd40623381f73185f6fe6fec3ab270ec" }, "downloads": -1, "filename": "fastapi-login-1.5.2.tar.gz", "has_sig": false, "md5_digest": "fbeceeac04e61c3efb8ea484952ab4b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7726, "upload_time": "2020-12-23T11:57:44", "upload_time_iso_8601": "2020-12-23T11:57:44.282336Z", "url": "https://files.pythonhosted.org/packages/58/20/fd14f5a874ccca640d5c0140b96ae5712abe70a10e1008c95e32b2ea6aaf/fastapi-login-1.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "cda4d977fdcc6deb3fec268fbb667ce6", "sha256": "6c83b74bdb45c34ec0aab22000a7951df96c5d011f02a99a46ca4b2be6b1263c" }, "downloads": -1, "filename": "fastapi_login-1.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "cda4d977fdcc6deb3fec268fbb667ce6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10449, "upload_time": "2021-02-18T20:44:43", "upload_time_iso_8601": "2021-02-18T20:44:43.760569Z", "url": "https://files.pythonhosted.org/packages/98/dc/778fea1edf52f49a6acb63c87439a58584fa335ec02df4420cdd8d1fa359/fastapi_login-1.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "689bbf74ce1ca216cbc233c5eb449908", "sha256": "8e8ef710f1b7107e81d00e205779e73e17be35d5a91d11685ff72f323898e93b" }, "downloads": -1, "filename": "fastapi-login-1.5.3.tar.gz", "has_sig": false, "md5_digest": "689bbf74ce1ca216cbc233c5eb449908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8534, "upload_time": "2021-02-18T20:44:44", "upload_time_iso_8601": "2021-02-18T20:44:44.894078Z", "url": "https://files.pythonhosted.org/packages/51/1a/d9aa460c7b8131c91c5dcb6aef11235ab7e9b2b3a8b959860449578dc48d/fastapi-login-1.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "64e12d82462b8fcbf0058d907c99cbc7", "sha256": "e2f92f6fb8100d50b0ee0d0f066013a04330ed03f9895ab4a775da8eeb5cc442" }, "downloads": -1, "filename": "fastapi_login-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "64e12d82462b8fcbf0058d907c99cbc7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12555, "upload_time": "2021-04-20T18:06:28", "upload_time_iso_8601": "2021-04-20T18:06:28.483132Z", "url": "https://files.pythonhosted.org/packages/1d/f1/774704a34a2255531954e5cb36d166c04520e557035f6809ab5561123f69/fastapi_login-1.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7635fe45dc3a21ba1521da3399fecece", "sha256": "b6beaf79c5f25dbad6e0cc21f2f35911bab8e06289d7e2dda3d64df9eab6917c" }, "downloads": -1, "filename": "fastapi-login-1.6.0.tar.gz", "has_sig": false, "md5_digest": "7635fe45dc3a21ba1521da3399fecece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10284, "upload_time": "2021-04-20T18:06:29", "upload_time_iso_8601": "2021-04-20T18:06:29.658595Z", "url": "https://files.pythonhosted.org/packages/1c/c4/9269af8a1e4c55e763fba2e4d64e34f89e398ac7129c814ab66c84e94450/fastapi-login-1.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "f6760e289dbd2ba18d5cf632e9a83111", "sha256": "7cc8eb9689a496b639b871b229ac94ef915b14a31ae559bd120ca9dda82d9cb9" }, "downloads": -1, "filename": "fastapi_login-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f6760e289dbd2ba18d5cf632e9a83111", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12554, "upload_time": "2021-06-10T16:22:42", "upload_time_iso_8601": "2021-06-10T16:22:42.013038Z", "url": "https://files.pythonhosted.org/packages/e1/61/7c51e68fcd989db4ff512d6dae36fe44896c42ced8002b0994486d54bac4/fastapi_login-1.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "47e9d383e23dfdc245a3c740ba07d4c8", "sha256": "d2dbf124f49f2e3e0ea2730db0ab5544289f7fbcbbf8e0bcc34fdf58eae7a0e9" }, "downloads": -1, "filename": "fastapi-login-1.6.1.tar.gz", "has_sig": false, "md5_digest": "47e9d383e23dfdc245a3c740ba07d4c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11038, "upload_time": "2021-06-10T16:22:43", "upload_time_iso_8601": "2021-06-10T16:22:43.540688Z", "url": "https://files.pythonhosted.org/packages/dd/68/d1a9fdad983086802e6ddf66283cafa6d606862b0f220e3efa9580498579/fastapi-login-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "033a3bb72ee2dd34fc3f8118b01eda66", "sha256": "324e75d423ae5ac31cf05ad8816c75a01d2ef62348f474345d576ec6da350790" }, "downloads": -1, "filename": "fastapi_login-1.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "033a3bb72ee2dd34fc3f8118b01eda66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13299, "upload_time": "2021-06-20T16:40:53", "upload_time_iso_8601": "2021-06-20T16:40:53.734414Z", "url": "https://files.pythonhosted.org/packages/07/8f/e37d01e16d5e1d3a0a6e0d84d1634c8a3957f8ec9ee9844d6c776d548e12/fastapi_login-1.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0a9dce28c908c722a0e852cdc7306cea", "sha256": "34034d47ffad51d99c49e1cd0efe5f2ea419172fcd265abaf5c8700b4a5c32e3" }, "downloads": -1, "filename": "fastapi-login-1.6.2.tar.gz", "has_sig": false, "md5_digest": "0a9dce28c908c722a0e852cdc7306cea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11715, "upload_time": "2021-06-20T16:40:55", "upload_time_iso_8601": "2021-06-20T16:40:55.249184Z", "url": "https://files.pythonhosted.org/packages/01/a3/966d490f6306cad51fc8fad55760499214f49f67d199b536d2fcbf567807/fastapi-login-1.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "ae2669bf1939513dfe086de5ae3d4c99", "sha256": "c13373bdd451655c4c25fa3e509864658f4c370e8bd311da3839d16e917ed9f6" }, "downloads": -1, "filename": "fastapi_login-1.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ae2669bf1939513dfe086de5ae3d4c99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13327, "upload_time": "2021-07-21T17:26:31", "upload_time_iso_8601": "2021-07-21T17:26:31.500521Z", "url": "https://files.pythonhosted.org/packages/39/9c/4bd6bdbe2c17af928eeae70efb18dfb3cf01b70de79ab1939c1449d795bb/fastapi_login-1.6.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "022a97a1428c765d498299897d30a6e0", "sha256": "eed72b5846992da60ceb804d68864759fec6095001b29bacb003cc2eb912cc8c" }, "downloads": -1, "filename": "fastapi-login-1.6.3.tar.gz", "has_sig": false, "md5_digest": "022a97a1428c765d498299897d30a6e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11761, "upload_time": "2021-07-21T17:26:32", "upload_time_iso_8601": "2021-07-21T17:26:32.647295Z", "url": "https://files.pythonhosted.org/packages/f0/e5/202e501692c9fa28b5fef6b427f3d5f7fda75b1dc13447ab2689a15fa75d/fastapi-login-1.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "c8bc36884af8f6169e1cd96358770234", "sha256": "8b195fc360589109abdb6735f6175224abcf251d8d0bf65086420fc58c255a6a" }, "downloads": -1, "filename": "fastapi_login-1.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8bc36884af8f6169e1cd96358770234", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14535, "upload_time": "2021-09-16T17:10:02", "upload_time_iso_8601": "2021-09-16T17:10:02.536558Z", "url": "https://files.pythonhosted.org/packages/f8/54/9f3cd57c8aeeafeffac306820c6fd3597d18248b9f296382564d38e56689/fastapi_login-1.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "052a5e28e79671d275ffc13e9b20b7c8", "sha256": "8f4b07c9518a9457b38367861a19ef193b1636cf39c972023c7ecb27eb655bfe" }, "downloads": -1, "filename": "fastapi-login-1.7.0.tar.gz", "has_sig": false, "md5_digest": "052a5e28e79671d275ffc13e9b20b7c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13160, "upload_time": "2021-09-16T17:10:04", "upload_time_iso_8601": "2021-09-16T17:10:04.206915Z", "url": "https://files.pythonhosted.org/packages/9d/5b/dd7efb646a3f52b614968c5d3b0f18b6e25a8fab66e3b07176456d0224e7/fastapi-login-1.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "92ad6a7a6f154c6709a895b3103f5235", "sha256": "bf716eecb0b5f6c5319faf9964053bba6a145006618defdd0935482c5e95408e" }, "downloads": -1, "filename": "fastapi_login-1.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "92ad6a7a6f154c6709a895b3103f5235", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15108, "upload_time": "2021-09-23T12:12:11", "upload_time_iso_8601": "2021-09-23T12:12:11.607460Z", "url": "https://files.pythonhosted.org/packages/c8/70/b47f93051349cd216710000eda7358707c51f0fcc2b358c662dc7c357027/fastapi_login-1.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4f73da35b31ddc55b9e2556ae2ea6d07", "sha256": "7281480b21309333079d7869ee7431f593530c6ac7c48f932ce4d57aefb6ab14" }, "downloads": -1, "filename": "fastapi-login-1.7.1.tar.gz", "has_sig": false, "md5_digest": "4f73da35b31ddc55b9e2556ae2ea6d07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13755, "upload_time": "2021-09-23T12:12:12", "upload_time_iso_8601": "2021-09-23T12:12:12.692077Z", "url": "https://files.pythonhosted.org/packages/4e/f3/6ef524bc88ffedbbc2ae96c138069cd42b9cdfeb9c311d632ac2b021a02f/fastapi-login-1.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "a16fa1b2b9513ef2b59bf7f62c72bb87", "sha256": "3cd13a6b82e3dd16f7c7b426d25a438fc7cdcda3244681d2bfb9895bcff7f476" }, "downloads": -1, "filename": "fastapi_login-1.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a16fa1b2b9513ef2b59bf7f62c72bb87", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15220, "upload_time": "2021-09-23T17:35:28", "upload_time_iso_8601": "2021-09-23T17:35:28.003543Z", "url": "https://files.pythonhosted.org/packages/26/c6/9f80da53dfca1586bb8362f54ee3ba9304dcec861dad080c0102140b827e/fastapi_login-1.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bcc86418caef6654445dc034ff5e2655", "sha256": "d0321bcd91d460277c93ae77d70032ff8ef739d3d6b9b82fae52d1cb2d2487b1" }, "downloads": -1, "filename": "fastapi-login-1.7.2.tar.gz", "has_sig": false, "md5_digest": "bcc86418caef6654445dc034ff5e2655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13860, "upload_time": "2021-09-23T17:35:29", "upload_time_iso_8601": "2021-09-23T17:35:29.296319Z", "url": "https://files.pythonhosted.org/packages/74/69/07c4b16bb2fe2081842fa509209c7fd859cabcba32769df6d804b540cc8d/fastapi-login-1.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.3": [ { "comment_text": "", "digests": { "md5": "f9f4e77716957b09e67062da20c4ed94", "sha256": "584809c2b03b3bd0d5a4ca0cc5b7bb65f64dce91bd1a11bef1f09832d7093055" }, "downloads": -1, "filename": "fastapi_login-1.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f9f4e77716957b09e67062da20c4ed94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15353, "upload_time": "2021-10-23T12:09:10", "upload_time_iso_8601": "2021-10-23T12:09:10.332292Z", "url": "https://files.pythonhosted.org/packages/cb/75/23a39790412c39da6f1a0854545e56761a5a863d70945ec44543f5c80bd0/fastapi_login-1.7.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "78fcb263c42cd22685ab24ac5d56874d", "sha256": "8413ecad04d255c451e8ab28e692c579c79c7561ce9af70795abe54705d50441" }, "downloads": -1, "filename": "fastapi-login-1.7.3.tar.gz", "has_sig": false, "md5_digest": "78fcb263c42cd22685ab24ac5d56874d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14026, "upload_time": "2021-10-23T12:09:11", "upload_time_iso_8601": "2021-10-23T12:09:11.692381Z", "url": "https://files.pythonhosted.org/packages/97/b3/0923cdced89158cab56048d8b94625fde99ac4f68dd457f16226398685ac/fastapi-login-1.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "82300f7f880b114c56e100da917b915e", "sha256": "3977fae79d20568f580b59017d9073e0d6f933c821fe9596d04f16a2ab67605b" }, "downloads": -1, "filename": "fastapi_login-1.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "82300f7f880b114c56e100da917b915e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17516, "upload_time": "2022-03-16T11:06:41", "upload_time_iso_8601": "2022-03-16T11:06:41.857649Z", "url": "https://files.pythonhosted.org/packages/e0/73/90601ce2f8e5b02d3f530904dbb0ac22558e7ac5fd6c6e1d16fdc17aef93/fastapi_login-1.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "57228a483ca4d5bb9e5a8e64c65ae3ca", "sha256": "d1745093bc9e7167f0c35478177f5c8bfc85191161ca257aa2e0483d8f398f17" }, "downloads": -1, "filename": "fastapi-login-1.8.0.tar.gz", "has_sig": false, "md5_digest": "57228a483ca4d5bb9e5a8e64c65ae3ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15743, "upload_time": "2022-03-16T11:06:43", "upload_time_iso_8601": "2022-03-16T11:06:43.732893Z", "url": "https://files.pythonhosted.org/packages/88/19/3b79a09b8ddf6ff3686f1ad86c21f2949175f045a79867fce8d8527b78ff/fastapi-login-1.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "7407afed13f6ee7c3fc4c53738053b01", "sha256": "bba4527a409473ee2175466ffcce35e9768cdb9a4a6c838a1da7204cf6de0ef3" }, "downloads": -1, "filename": "fastapi_login-1.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7407afed13f6ee7c3fc4c53738053b01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17662, "upload_time": "2022-05-13T17:22:47", "upload_time_iso_8601": "2022-05-13T17:22:47.387683Z", "url": "https://files.pythonhosted.org/packages/fa/52/8c5806a2cd6102d28b42fa0ce012d8fa7a8cf55721790d48be670456ba2a/fastapi_login-1.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5acff3d9d6e0c9755f726b1e300a83d", "sha256": "e0c8b7f9073bcc5a728fbc5945e661e307e661a5d878b7bec5762f753b04cc5e" }, "downloads": -1, "filename": "fastapi-login-1.8.1.tar.gz", "has_sig": false, "md5_digest": "b5acff3d9d6e0c9755f726b1e300a83d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15910, "upload_time": "2022-05-13T17:22:49", "upload_time_iso_8601": "2022-05-13T17:22:49.203099Z", "url": "https://files.pythonhosted.org/packages/25/c9/62d66d5bc291f4cb790c6b41447953dc0ae59ac7d7f316053475da24b804/fastapi-login-1.8.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7407afed13f6ee7c3fc4c53738053b01", "sha256": "bba4527a409473ee2175466ffcce35e9768cdb9a4a6c838a1da7204cf6de0ef3" }, "downloads": -1, "filename": "fastapi_login-1.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7407afed13f6ee7c3fc4c53738053b01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17662, "upload_time": "2022-05-13T17:22:47", "upload_time_iso_8601": "2022-05-13T17:22:47.387683Z", "url": "https://files.pythonhosted.org/packages/fa/52/8c5806a2cd6102d28b42fa0ce012d8fa7a8cf55721790d48be670456ba2a/fastapi_login-1.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5acff3d9d6e0c9755f726b1e300a83d", "sha256": "e0c8b7f9073bcc5a728fbc5945e661e307e661a5d878b7bec5762f753b04cc5e" }, "downloads": -1, "filename": "fastapi-login-1.8.1.tar.gz", "has_sig": false, "md5_digest": "b5acff3d9d6e0c9755f726b1e300a83d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15910, "upload_time": "2022-05-13T17:22:49", "upload_time_iso_8601": "2022-05-13T17:22:49.203099Z", "url": "https://files.pythonhosted.org/packages/25/c9/62d66d5bc291f4cb790c6b41447953dc0ae59ac7d7f316053475da24b804/fastapi-login-1.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }