{ "info": { "author": "St\u00e9phane Raimbault", "author_email": "stephane.raimbault@webstack.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP" ], "description": "# Django JWT Auth\n\n![Test Suite](https://github.com/webstack/django-jwt-auth/workflows/Test%20Suite/badge.svg)\n[![pypi-version]][pypi]\n\n## Overview\n\nThis package provides [JSON Web Token\nAuthentication](http://tools.ietf.org/html/draft-ietf-oauth-json-web-token)\nsupport for Django by using [PyJWT](https://github.com/jpadilla/pyjwt).\n\nThe project is a fork of (https://github.com/jpadilla/django-jwt-auth) created\nby Jos\u00e9 Padilla (maintainer of PyJWT too). Jos\u00e9 doesn't seem to have the time\nanymore to work on django-jwt-auth.\n\nNew features from original code:\n\n- refresh token\n- provides 2 middlewares\n- Django 3.0+\n- better coverage and packaging\n\n## Installation\n\nInstall using `pip`...\n\n```shell\npip install webstack-django-jwt-auth\n```\n\n## Usage\n\nIn your `urls.py` add the following URL route to enable obtaining a token via a\nPOST included the user's username and password.\n\n```python\nfrom jwt_auth import views as jwt_auth_views\n\nfrom your_app.views import RestrictedView\n\nurlpatterns = [\n # ...\n path(\"token-auth/\", jwt_auth_views.jwt_token),\n path(\"token-refresh/\", jwt_auth_views.refresh_jwt_token),\n path(\"protected-url/\", RestrictedView.as_view()),\n]\n```\n\nInside your_app, create a Django restricted view:\n\n```python\nimport json\n\nfrom django.http import JsonResponse\nfrom django.views.generic import View\nfrom jwt_auth.mixins import JSONWebTokenAuthMixin\n\nclass RestrictedView(JSONWebTokenAuthMixin, View):\n def get(self, request):\n data = {\n \"foo\": \"bar\",\n \"username\": request.user.username,\n }\n return JsonResponse(data)\n```\n\nYou can easily test if the endpoint is working by doing the following in your\nterminal, if you had a user created with the username **admin** and password\n**abc123**.\n\n```shell\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"username\":\"admin\",\"password\":\"abc123\"}' http://localhost:8000/token-auth/\n```\n\nNow in order to access protected api urls you must include the `Authorization: Bearer ` header.\n\n```shell\ncurl -H \"Authorization: Bearer \" http://localhost:8000/protected-url/\n```\n\nThere is also a provided middleware if you would prefer that to the view\nintegration. Just add the following to your middleware:\n\n```python\nMIDDLEWARE = (\n # ...\n 'jwt_auth.middleware.JWTAuthenticationMiddleware',\n)\n```\n\n## Additional Settings\n\nThere are some additional settings that you can override similar to how you'd do\nit with Django REST framework itself. Here are all the available defaults.\n\n```python\nJWT_ALGORITHM = 'HS256'\nJWT_ALLOW_REFRESH = False\nJWT_AUDIENCE = None\nJWT_AUTH_HEADER_PREFIX = 'Bearer'\nJWT_DECODE_HANDLER = 'jwt_auth.utils.jwt_decode_handler',\nJWT_ENCODE_HANDLER = 'jwt_auth.utils.jwt_encode_handler'\nJWT_EXPIRATION_DELTA = datetime.timedelta(seconds=300)\nJWT_LEEWAY = 0\nJWT_LOGIN_URLS = [settings.LOGIN_URL]\nJWT_PAYLOAD_GET_USER_ID_HANDLER = 'jwt_auth.utils.jwt_get_user_id_from_payload_handler'\nJWT_PAYLOAD_HANDLER = 'jwt_auth.utils.jwt_payload_handler'\nJWT_REFRESH_EXPIRATION_DELTA = datetime.timedelta(days=7)\nJWT_SECRET_KEY: SECRET_KEY\nJWT_VERIFY = True\nJWT_VERIFY_EXPIRATION = True\n```\n\nThis packages uses the JSON Web Token Python implementation,\n[PyJWT](https://github.com/progrium/pyjwt) and allows to modify some of it's\navailable options.\n\n### JWT_ALGORITHM\n\nPossible values:\n\n- HS256 - HMAC using SHA-256 hash algorithm (default)\n- HS384 - HMAC using SHA-384 hash algorithm\n- HS512 - HMAC using SHA-512 hash algorithm\n- RS256 - RSASSA-PKCS1-v1_5 signature algorithm using SHA-256 hash algorithm\n- RS384 - RSASSA-PKCS1-v1_5 signature algorithm using SHA-384 hash algorithm\n- RS512 - RSASSA-PKCS1-v1_5 signature algorithm using SHA-512 hash algorithm\n\nNote:\n\n> For the RSASSA-PKCS1-v1_5 algorithms, the \"secret\" argument in jwt.encode is\n> supposed to be a private RSA key as imported with\n> Crypto.PublicKey.RSA.importKey. Likewise, the \"secret\" argument in jwt.decode\n> is supposed to be the public RSA key imported with the same method.\n\nDefault is `\"HS256\"`.\n\n### JWT_ALLOW_REFRESH\n\nEnable token refresh functionality. Token issued from `jwt_auth.views.jwt_token`\nwill have an `orig_iat` field.\n\nDefault is `False`\n\n### JWT_AUDIENCE\n\nTypically, the base address of the resource being accessed, eg `https://example.com`.\n\n### JWT_AUTH_HEADER_PREFIX\n\nYou can modify the Authorization header value prefix that is required to be sent\ntogether with the token.\n\nDefault is `Bearer`.\n\n### JWT_EXPIRATION_DELTA\n\nThis is an instance of Python's `datetime.timedelta`. This will be added to\n`datetime.utcnow()` to set the expiration time.\n\nDefault is `datetime.timedelta(seconds=300)`(5 minutes).\n\n### JWT_LEEWAY\n\n> This allows you to validate an expiration time which is in the past but no\n> very far. For example, if you have a JWT payload with an expiration time set\n> to 30 seconds after creation but you know that sometimes you will process it\n> after 30 seconds, you can set a leeway of 10 seconds in order to have some\n> margin.\n\nDefault is `0` seconds.\n\n### JWT_LOGIN_URLS\n\nSet the list of URLs that will be used to authenticate the user, you should take\ncare to set only required URLs because the middleware will accept\nnon-authenticated requests (no JWT) to these endpoints.\n\n### JWT_PAYLOAD_GET_USER_ID_HANDLER\n\nIf you store `user_id` differently than the default payload handler does,\nimplement this function to fetch `user_id` from the payload.\n\n### JWT_PAYLOAD_HANDLER\n\nSpecify a custom function to generate the token payload\n\n### JWT_REFRESH_EXPIRATION_DELTA\n\nLimit on token refresh, is a `datetime.timedelta` instance. This is how much\ntime after the original token that future tokens can be refreshed from.\n\nDefault is `datetime.timedelta(days=7)` (7 days).\n\n### JWT_SECRET_KEY\n\nThis is the secret key used to encrypt the JWT. Make sure this is safe and not\nshared or public.\n\nDefault is your project's `settings.SECRET_KEY`.\n\n### JWT_VERIFY\n\nIf the secret is wrong, it will raise a jwt.DecodeError telling you as such. You\ncan still get at the payload by setting the `JWT_VERIFY` to `False`.\n\nDefault is `True`.\n\n### JWT_VERIFY_EXPIRATION\n\nYou can turn off expiration time verification with by setting\n`JWT_VERIFY_EXPIRATION` to `False`.\n\nDefault is `True`.\n\n[pypi-version]: https://img.shields.io/pypi/v/webstack-django-jwt-auth.svg\n[pypi]: https://pypi.python.org/pypi/webstack-django-jwt-auth\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/webstack/django-jwt-auth", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "webstack-django-jwt-auth", "package_url": "https://pypi.org/project/webstack-django-jwt-auth/", "platform": null, "project_url": "https://pypi.org/project/webstack-django-jwt-auth/", "project_urls": { "Homepage": "https://github.com/webstack/django-jwt-auth" }, "release_url": "https://pypi.org/project/webstack-django-jwt-auth/1.5.0/", "requires_dist": [ "Django (>=3.0)", "PyJWT (>=2.0.0)" ], "requires_python": "", "summary": "JSON Web Token based authentication for Django", "version": "1.5.0", "yanked": false, "yanked_reason": null }, "last_serial": 13138792, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "089497b919508b31ed401079047063de", "sha256": "22752eef0419693d186490f0f816f5e21849c1eacf57087cfd0869a83993637e" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "089497b919508b31ed401079047063de", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 8172, "upload_time": "2018-12-17T22:31:59", "upload_time_iso_8601": "2018-12-17T22:31:59.215220Z", "url": "https://files.pythonhosted.org/packages/68/c7/8989a8a2d4c417cb94b6a7fef943a42393f4d57594713780159d8321665b/webstack_django_jwt_auth-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "916ff712a47a4e4d069761db07d34130", "sha256": "62778e03e64e5b5318195a9706a02d726c30a01cf110b38f61f4bc5b0a18f510" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.2.0.tar.gz", "has_sig": false, "md5_digest": "916ff712a47a4e4d069761db07d34130", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8794, "upload_time": "2018-12-17T22:31:55", "upload_time_iso_8601": "2018-12-17T22:31:55.887406Z", "url": "https://files.pythonhosted.org/packages/1e/81/e3d208cb39fcb0064ed4751c261f5faa9064874948fc019f50ac75630d56/webstack-django-jwt-auth-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "27a9a5a707644dc3c8fdf39ab3e40176", "sha256": "f180e7551dcfa183acd1d77ceb19d1d8d8f29a00a9ed890889c14e52793857cf" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27a9a5a707644dc3c8fdf39ab3e40176", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9026, "upload_time": "2018-12-17T22:33:34", "upload_time_iso_8601": "2018-12-17T22:33:34.355180Z", "url": "https://files.pythonhosted.org/packages/51/37/6aab8bb93fe94738e971268c353076528f487873825b1cf75005711e7e71/webstack_django_jwt_auth-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8bd9c36c89e259814380fdecf93e6ac8", "sha256": "683bac2cedfc97b643156db126f60776757da6d551fd1253972263b7804a440b" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8bd9c36c89e259814380fdecf93e6ac8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9274, "upload_time": "2018-12-17T22:33:35", "upload_time_iso_8601": "2018-12-17T22:33:35.685209Z", "url": "https://files.pythonhosted.org/packages/e1/54/4b31f83eaf65b9ec6736d29df90cb6eadcf05d83420ca2d6647f7760be34/webstack-django-jwt-auth-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "276a8d83af170e8a2c87b5bfd5988b63", "sha256": "00c86cdc7356262b2bcb696d56fe8f6ae13904119bda7e97c6fa98c36e94306f" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "276a8d83af170e8a2c87b5bfd5988b63", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9256, "upload_time": "2018-12-20T11:17:07", "upload_time_iso_8601": "2018-12-20T11:17:07.602790Z", "url": "https://files.pythonhosted.org/packages/e4/8a/9d51cbf35174ddbbcd0208e08399dcbca4979696f410c0d0c31c5d44ea60/webstack_django_jwt_auth-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "492d76d61bb417665513daf3a67df08b", "sha256": "417c1240c34d0d016b784a75ea30cdf5c7785e13eb10e0958c29a403c02c9cd5" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.4.0.tar.gz", "has_sig": false, "md5_digest": "492d76d61bb417665513daf3a67df08b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9585, "upload_time": "2018-12-20T11:17:09", "upload_time_iso_8601": "2018-12-20T11:17:09.891853Z", "url": "https://files.pythonhosted.org/packages/32/3e/818c44578cc8371cb913f909f6a77c683a05e515d05e9c0651a5d80fb742/webstack-django-jwt-auth-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "ab5a2acbca0c6638099db979b87f3451", "sha256": "3695b344febc8be33eda10c8d82cd08febacad6ffb1d547ad3dad6704f538e76" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ab5a2acbca0c6638099db979b87f3451", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9253, "upload_time": "2018-12-20T17:40:26", "upload_time_iso_8601": "2018-12-20T17:40:26.440511Z", "url": "https://files.pythonhosted.org/packages/9c/ac/970a1a0d6b67e33febf8388650a11e5997c6801a9275395563d1a524bd9e/webstack_django_jwt_auth-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "273e13ea28f93d7d45f6e315278ccf17", "sha256": "a7ee708766b7ef620a789aea2652506bd20b3eae333417592032e870582f6616" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.5.0.tar.gz", "has_sig": false, "md5_digest": "273e13ea28f93d7d45f6e315278ccf17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9656, "upload_time": "2018-12-20T17:40:29", "upload_time_iso_8601": "2018-12-20T17:40:29.662259Z", "url": "https://files.pythonhosted.org/packages/f2/f5/372badb8a9ec2aae0d91ff8ae3546f5f146a6845aa5b33c16ba3b311fb66/webstack-django-jwt-auth-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "1b68bd251ae266444ddede84066238cd", "sha256": "311fcd389b05481047b2024a160c0c09b2cd7be2a387e423b6ca7270bdb7bbd7" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b68bd251ae266444ddede84066238cd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11841, "upload_time": "2019-01-10T18:39:41", "upload_time_iso_8601": "2019-01-10T18:39:41.725833Z", "url": "https://files.pythonhosted.org/packages/4b/a3/63135e5150f4b391b487a0d783e4bbdef33e4eefd7ca6b8f1d73c2416ca3/webstack_django_jwt_auth-0.5.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c112e891bf9291e2e474e5a3c30821f6", "sha256": "a9a752df18f19a16e652c6070c28e214436a0f56fef74359e7e15be046bf4afd" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c112e891bf9291e2e474e5a3c30821f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12682, "upload_time": "2019-01-10T18:39:43", "upload_time_iso_8601": "2019-01-10T18:39:43.512904Z", "url": "https://files.pythonhosted.org/packages/f2/37/756d865efdd5eae007570eb41de0f488b8acf1a7e5a0d4d987a222a5af4f/webstack-django-jwt-auth-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "0e1f334184582c3792d09f97a1c569ee", "sha256": "c5d8d2eaf6ee996e11da91860c73806e5622efb47f08b1d6672b1d459fd518a2" }, "downloads": -1, "filename": "webstack_django_jwt_auth-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e1f334184582c3792d09f97a1c569ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11837, "upload_time": "2019-01-24T22:34:31", "upload_time_iso_8601": "2019-01-24T22:34:31.666425Z", "url": "https://files.pythonhosted.org/packages/f9/da/840682be20347bd97b01a2670a9c57ef8db1d910feddfa5a19608b4e40ba/webstack_django_jwt_auth-0.5.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d639b7555c4666eeaf0d27e3f3af53e2", "sha256": "96d4a5a2e8422cbce53da2e093da4206e067fc553b3aa1a54ecd9df8404d4f14" }, "downloads": -1, "filename": "webstack-django-jwt-auth-0.5.2.tar.gz", "has_sig": false, "md5_digest": "d639b7555c4666eeaf0d27e3f3af53e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12676, "upload_time": "2019-01-24T22:34:33", "upload_time_iso_8601": "2019-01-24T22:34:33.889700Z", "url": "https://files.pythonhosted.org/packages/5e/11/0978515a6ea6c33ca662608605f1cbb41445646886465344e882bcbc0d4f/webstack-django-jwt-auth-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e8e9e2f357d5abf9a19409279a3ff486", "sha256": "cf4c22a88d54f910fffc48e697155344e0ca85ef8ea985b45d2318cad8231c61" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e8e9e2f357d5abf9a19409279a3ff486", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11844, "upload_time": "2019-01-29T14:51:12", "upload_time_iso_8601": "2019-01-29T14:51:12.119112Z", "url": "https://files.pythonhosted.org/packages/39/64/3628faf1ef18d96bfb5eebfae8c1cf7d590ef1b099b6bdfbf743d3636e52/webstack_django_jwt_auth-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8726593f4593b7c8bf47790a4be1112e", "sha256": "e6cdef733e46eec355f092e57205bd172f8afe299a738dfd842a0363136777a2" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8726593f4593b7c8bf47790a4be1112e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12707, "upload_time": "2019-01-29T14:51:14", "upload_time_iso_8601": "2019-01-29T14:51:14.186780Z", "url": "https://files.pythonhosted.org/packages/09/cd/17d73a4e8363c55c922254961b01861d97c4f5e75aa2cf38c2aa52c1a693/webstack-django-jwt-auth-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d2b578b7f25b504758f688631c71d31e", "sha256": "043879adc457845319572e2425f58d619ff6708926642d258d8d11e7bfea0d9d" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2b578b7f25b504758f688631c71d31e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11762, "upload_time": "2019-01-30T14:59:53", "upload_time_iso_8601": "2019-01-30T14:59:53.067789Z", "url": "https://files.pythonhosted.org/packages/86/be/0d25da6534b694859096ed8a7a244c29536e5864d45b15ce9361018db82b/webstack_django_jwt_auth-1.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2141910d1e88376261f47428d5ed7b86", "sha256": "77dda1ed7ed6ba2ea872f1d9037b5d982b7b05a742b8db301f7d1317f2a69ce5" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2141910d1e88376261f47428d5ed7b86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12553, "upload_time": "2019-01-30T14:59:54", "upload_time_iso_8601": "2019-01-30T14:59:54.319831Z", "url": "https://files.pythonhosted.org/packages/59/a5/3671ef894d84ab2391b9b7279aef4c4633758cece17b747196a8de7e4e81/webstack-django-jwt-auth-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "8a9f852025b656f0fb85d46a77e57d8d", "sha256": "e1cca6ccb59fe8ecfe655dabbbeba38f7ddc1492be2ac441dad7675ac986e7b3" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a9f852025b656f0fb85d46a77e57d8d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11787, "upload_time": "2019-03-07T16:14:14", "upload_time_iso_8601": "2019-03-07T16:14:14.586782Z", "url": "https://files.pythonhosted.org/packages/d8/c4/4006c40ee7229c0dfa79c8a5e4b6ae9f592472786b2bc01ed8a8247c2989/webstack_django_jwt_auth-1.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "87740311f6931c8d71faa8637d1e22ac", "sha256": "1afdf5f2016b1fcedb23e2f9e9dfffded390b5989c0ddc9593f02c8123f003cc" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.1.1.tar.gz", "has_sig": false, "md5_digest": "87740311f6931c8d71faa8637d1e22ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12564, "upload_time": "2019-03-07T16:14:17", "upload_time_iso_8601": "2019-03-07T16:14:17.210795Z", "url": "https://files.pythonhosted.org/packages/81/7d/cf452c2338772b9f91fc9701107069ea4937f93fc227bcda29f2fc61182e/webstack-django-jwt-auth-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "411c8994535ff578db58444343e843c0", "sha256": "d5725aa4c9f4b5fadc8c0c45fbba22d2a5129a88889298d275974abc145ad5d7" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "411c8994535ff578db58444343e843c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11841, "upload_time": "2019-03-07T18:29:23", "upload_time_iso_8601": "2019-03-07T18:29:23.029415Z", "url": "https://files.pythonhosted.org/packages/9f/7e/abb5920feb5cc8dc0c1445a3779cbc16c59539e1d39ec573d01e3faa2142/webstack_django_jwt_auth-1.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9f8c4a979639d3910b05bef923ea3ebf", "sha256": "ed057ef2c541c9b95fd43dbe049495a2fa10003bf135cbf6a3ef35987ffccde6" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.1.2.tar.gz", "has_sig": false, "md5_digest": "9f8c4a979639d3910b05bef923ea3ebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12622, "upload_time": "2019-03-07T18:29:28", "upload_time_iso_8601": "2019-03-07T18:29:28.131643Z", "url": "https://files.pythonhosted.org/packages/c3/53/72cf147ed5bcdc99f7119086fab325f81e3212a4d28ce8b803b28bd6fe30/webstack-django-jwt-auth-1.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "e1691c4d47c3bed973d2cbc59bede2e9", "sha256": "5a1292e36ae04b971ffe3b94df9dc093d0708dc35e105bcb687d1e2cb4c87d10" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1691c4d47c3bed973d2cbc59bede2e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11993, "upload_time": "2019-10-24T08:31:27", "upload_time_iso_8601": "2019-10-24T08:31:27.445222Z", "url": "https://files.pythonhosted.org/packages/dc/90/686577435dd34dfba65f73a2fba0913d2ec3b571b25d260d0b1e138fde8d/webstack_django_jwt_auth-1.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4a6d3e4be2846e0afbcaf8214ac8b4cd", "sha256": "c4526ca494e789be953da0756bf2adb0abf68a8d2ce85df53399706ad724622c" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4a6d3e4be2846e0afbcaf8214ac8b4cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12897, "upload_time": "2019-10-24T08:31:29", "upload_time_iso_8601": "2019-10-24T08:31:29.101718Z", "url": "https://files.pythonhosted.org/packages/86/cc/06547af0138f2a4134c113c36005b9202362a1c1aaac1bb85d53abb6ddab/webstack-django-jwt-auth-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "292e0ee4651f1601099b8743a7017599", "sha256": "2f2a4d48712363d1ab9d6afef7dca125a76652cbda67afb9351c852cf95ee455" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "292e0ee4651f1601099b8743a7017599", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11991, "upload_time": "2019-10-24T08:35:20", "upload_time_iso_8601": "2019-10-24T08:35:20.783950Z", "url": "https://files.pythonhosted.org/packages/97/cf/de56ca9d6a7e296241f6d999a349541e194d61810839c2449197fff33f75/webstack_django_jwt_auth-1.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "94df0f92bc634c78485287a5e6a301de", "sha256": "4caa7e34b89ca8e367d5268e0db35749e1a7431c212b7ef108536ca01969d063" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.2.1.tar.gz", "has_sig": false, "md5_digest": "94df0f92bc634c78485287a5e6a301de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12900, "upload_time": "2019-10-24T08:35:26", "upload_time_iso_8601": "2019-10-24T08:35:26.367760Z", "url": "https://files.pythonhosted.org/packages/ec/f2/d7cb2ff876e34554b8897a897179bb74ee99ca0ab52c70538c056920c50b/webstack-django-jwt-auth-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "f8c52554fe9a9bebee38493c31c2dc5c", "sha256": "6a50295ce1b918e0770cd7899dcf24c5cf1ec3e5e6844be770e92f9ea4c60f0d" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8c52554fe9a9bebee38493c31c2dc5c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11987, "upload_time": "2020-08-28T15:54:59", "upload_time_iso_8601": "2020-08-28T15:54:59.362781Z", "url": "https://files.pythonhosted.org/packages/9b/79/3128ccdec95af827f87d8d2946732fbb9949568d7ee81ee3a67a53f37090/webstack_django_jwt_auth-1.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7aa967ca8471df4867490bc6886c8bbd", "sha256": "28f81ca34be3f3506ba3f5e71d9f8f0708e3964e3c69d0072ff18fa7a49a70ec" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.3.0.tar.gz", "has_sig": false, "md5_digest": "7aa967ca8471df4867490bc6886c8bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13522, "upload_time": "2020-08-28T15:55:01", "upload_time_iso_8601": "2020-08-28T15:55:01.433916Z", "url": "https://files.pythonhosted.org/packages/64/1f/716b3065c7789027577658d5c2b49880052e8d0aba18648e05f38de3130b/webstack-django-jwt-auth-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "da5ea283011d166dfd7be39f07234635", "sha256": "27c81524013c63d50b8d1b32d0283ebc6a864a9d91ff2c11b2bd0eae28d7fb71" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da5ea283011d166dfd7be39f07234635", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11966, "upload_time": "2021-01-15T23:25:09", "upload_time_iso_8601": "2021-01-15T23:25:09.261498Z", "url": "https://files.pythonhosted.org/packages/8f/23/4a9775b3633779b85ed8894bdeaca35ad783dfec2234c2a3e31abadfdd7f/webstack_django_jwt_auth-1.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e9dc29e094f1c517350755caa1191332", "sha256": "f09a528477f9087f0afdd6a273bf9322dbb6428cfabfc8218349d96b286d36da" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.4.0.tar.gz", "has_sig": false, "md5_digest": "e9dc29e094f1c517350755caa1191332", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12365, "upload_time": "2021-01-15T23:25:10", "upload_time_iso_8601": "2021-01-15T23:25:10.489925Z", "url": "https://files.pythonhosted.org/packages/30/ce/8ba88b9d9dfbd81a0c4a60e45f3323444f5d6cb231834ebe2d13158e9b2e/webstack-django-jwt-auth-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "ee8150642d83226cff48a6c9dde26dd3", "sha256": "68cc073b312e61ff1e8d202b5affcf71d7fcb7f258386564be986b62c1b31da0" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee8150642d83226cff48a6c9dde26dd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12003, "upload_time": "2022-03-10T13:58:25", "upload_time_iso_8601": "2022-03-10T13:58:25.557105Z", "url": "https://files.pythonhosted.org/packages/cb/f0/78247d6004696d53da1a9b7b28082a7360e6c67b63a8ba79120d12c05969/webstack_django_jwt_auth-1.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dea07cdd17bd9c154be6af9cba42a0f1", "sha256": "03e49ea500458a08daca0a8c7c9a007fadcc588e3be728834873ce2f3018c0f0" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.5.0.tar.gz", "has_sig": false, "md5_digest": "dea07cdd17bd9c154be6af9cba42a0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11689, "upload_time": "2022-03-10T13:58:27", "upload_time_iso_8601": "2022-03-10T13:58:27.982340Z", "url": "https://files.pythonhosted.org/packages/15/5f/b76f97e0cc6f5278bf846c9943fb5916896663e7ab7bfa6bcea311919faf/webstack-django-jwt-auth-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ee8150642d83226cff48a6c9dde26dd3", "sha256": "68cc073b312e61ff1e8d202b5affcf71d7fcb7f258386564be986b62c1b31da0" }, "downloads": -1, "filename": "webstack_django_jwt_auth-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee8150642d83226cff48a6c9dde26dd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12003, "upload_time": "2022-03-10T13:58:25", "upload_time_iso_8601": "2022-03-10T13:58:25.557105Z", "url": "https://files.pythonhosted.org/packages/cb/f0/78247d6004696d53da1a9b7b28082a7360e6c67b63a8ba79120d12c05969/webstack_django_jwt_auth-1.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dea07cdd17bd9c154be6af9cba42a0f1", "sha256": "03e49ea500458a08daca0a8c7c9a007fadcc588e3be728834873ce2f3018c0f0" }, "downloads": -1, "filename": "webstack-django-jwt-auth-1.5.0.tar.gz", "has_sig": false, "md5_digest": "dea07cdd17bd9c154be6af9cba42a0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11689, "upload_time": "2022-03-10T13:58:27", "upload_time_iso_8601": "2022-03-10T13:58:27.982340Z", "url": "https://files.pythonhosted.org/packages/15/5f/b76f97e0cc6f5278bf846c9943fb5916896663e7ab7bfa6bcea311919faf/webstack-django-jwt-auth-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }