{ "info": { "author": "David Sanders", "author_email": "davesque@gmail.com", "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", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP" ], "description": "Simple JWT\n==========\n\nA JSON Web Token authentication plugin for the `Django REST Framework\n`__.\n\n.. image:: https://travis-ci.org/davesque/django-rest-framework-simplejwt.svg?branch=master\n :target: https://travis-ci.org/davesque/django-rest-framework-simplejwt\n.. image:: https://codecov.io/gh/davesque/django-rest-framework-simplejwt/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/davesque/django-rest-framework-simplejwt\n\n-------------------------------------------------------------------------------\n\nSimple JWT provides a JSON Web Token authentication backend for the Django REST\nFramework. It aims to provide an out-of-the-box solution for JWT\nauthentication which avoids some of the common pitfalls of the JWT\nspecification. Assuming users of the library don't extensively and invasively\nsubclass everything, Simple JWT's behavior shouldn't be surprising. Settings\nvariable defaults should be safe.\n\nRequirements\n------------\n\n* Python (3.5, 3.6, 3.7)\n* Django (1.11, 2.0, 2.1, 2.2)\n* Django REST Framework (3.5, 3.6, 3.7, 3.8, 3.9)\n\nThese are the officially supported python and package versions. Other versions\nwill probably work. You're free to modify the tox config and see what is\npossible.\n\nInstallation\n------------\n\nSimple JWT can be installed with pip::\n\n pip install djangorestframework_simplejwt\n\nThen, your django project must be configured to use the library. In\n``settings.py``, add\n``rest_framework_simplejwt.authentication.JWTAuthentication`` to the list of\nauthentication classes:\n\n.. code-block:: python\n\n REST_FRAMEWORK = {\n ...\n 'DEFAULT_AUTHENTICATION_CLASSES': (\n ...\n 'rest_framework_simplejwt.authentication.JWTAuthentication',\n )\n ...\n }\n\nAlso, in your root ``urls.py`` file (or any other url config), include routes\nfor Simple JWT's ``TokenObtainPairView`` and ``TokenRefreshView`` views:\n\n.. code-block:: python\n\n from rest_framework_simplejwt.views import (\n TokenObtainPairView,\n TokenRefreshView,\n )\n\n urlpatterns = [\n ...\n url(r'^api/token/$', TokenObtainPairView.as_view(), name='token_obtain_pair'),\n url(r'^api/token/refresh/$', TokenRefreshView.as_view(), name='token_refresh'),\n ...\n ]\n\nYou can also include a route for Simple JWT's ``TokenVerifyView`` if you wish to\nallow API users to verify HMAC-signed tokens without having access to your\nsigning key:\n\n.. code-block:: python\n\n urlpatterns = [\n ...\n url(r'^api/token/verify/$', TokenVerifyView.as_view(), name='token_verify'),\n ...\n ]\n\nUsage\n-----\n\nTo verify that Simple JWT is working, you can use curl to issue a couple of\ntest requests:\n\n.. code-block:: bash\n\n curl \\\n -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"davidattenborough\", \"password\": \"boatymcboatface\"}' \\\n http://localhost:8000/api/token/\n\n ...\n {\n \"access\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiY29sZF9zdHVmZiI6IuKYgyIsImV4cCI6MTIzNDU2LCJqdGkiOiJmZDJmOWQ1ZTFhN2M0MmU4OTQ5MzVlMzYyYmNhOGJjYSJ9.NHlztMGER7UADHZJlxNG0WSi22a2KaYSfd1S-AuT7lU\",\n \"refresh\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImNvbGRfc3R1ZmYiOiLimIMiLCJleHAiOjIzNDU2NywianRpIjoiZGUxMmY0ZTY3MDY4NDI3ODg5ZjE1YWMyNzcwZGEwNTEifQ.aEoAYkSJjoWH1boshQAaTkf8G3yn0kapko6HFRt7Rh4\"\n }\n\nYou can use the returned access token to prove authentication for a protected\nview:\n\n.. code-block:: bash\n\n curl \\\n -H \"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiY29sZF9zdHVmZiI6IuKYgyIsImV4cCI6MTIzNDU2LCJqdGkiOiJmZDJmOWQ1ZTFhN2M0MmU4OTQ5MzVlMzYyYmNhOGJjYSJ9.NHlztMGER7UADHZJlxNG0WSi22a2KaYSfd1S-AuT7lU\" \\\n http://localhost:8000/api/some-protected-view/\n\nWhen this short-lived access token expires, you can use the longer-lived\nrefresh token to obtain another access token:\n\n.. code-block:: bash\n\n curl \\\n -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"refresh\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImNvbGRfc3R1ZmYiOiLimIMiLCJleHAiOjIzNDU2NywianRpIjoiZGUxMmY0ZTY3MDY4NDI3ODg5ZjE1YWMyNzcwZGEwNTEifQ.aEoAYkSJjoWH1boshQAaTkf8G3yn0kapko6HFRt7Rh4\"}' \\\n http://localhost:8000/api/token/refresh/\n\n ...\n {\"access\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiY29sZF9zdHVmZiI6IuKYgyIsImV4cCI6MTIzNTY3LCJqdGkiOiJjNzE4ZTVkNjgzZWQ0NTQyYTU0NWJkM2VmMGI0ZGQ0ZSJ9.ekxRxgb9OKmHkfy-zs1Ro_xs1eMLXiR17dIDBVxeT-w\"}\n\nSettings\n--------\n\nSome of Simple JWT's behavior can be customized through settings variables in\n``settings.py``:\n\n.. code-block:: python\n\n # Django project settings.py\n\n from datetime import timedelta\n\n ...\n\n SIMPLE_JWT = {\n 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),\n 'REFRESH_TOKEN_LIFETIME': timedelta(days=1),\n 'ROTATE_REFRESH_TOKENS': False,\n 'BLACKLIST_AFTER_ROTATION': True,\n\n 'ALGORITHM': 'HS256',\n 'SIGNING_KEY': settings.SECRET_KEY,\n 'VERIFYING_KEY': None,\n\n 'AUTH_HEADER_TYPES': ('Bearer',),\n 'USER_ID_FIELD': 'id',\n 'USER_ID_CLAIM': 'user_id',\n\n 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),\n 'TOKEN_TYPE_CLAIM': 'token_type',\n\n 'JTI_CLAIM': 'jti',\n\n 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',\n 'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),\n 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),\n }\n\nAbove, the default values for these settings are shown.\n\n-------------------------------------------------------------------------------\n\nACCESS_TOKEN_LIFETIME\n A ``datetime.timedelta`` object which specifies how long access tokens are\n valid. This ``timedelta`` value is added to the current UTC time during\n token generation to obtain the token's default \"exp\" claim value.\n\nREFRESH_TOKEN_LIFETIME\n A ``datetime.timedelta`` object which specifies how long refresh tokens are\n valid. This ``timedelta`` value is added to the current UTC time during\n token generation to obtain the token's default \"exp\" claim value.\n\nROTATE_REFRESH_TOKENS\n When set to ``True``, if a refresh token is submitted to the\n ``TokenRefreshView``, a new refresh token will be returned along with the new\n access token. This new refresh token will be supplied via a \"refresh\" key in\n the JSON response. New refresh tokens will have a renewed expiration time\n which is determined by adding the timedelta in the ``REFRESH_TOKEN_LIFETIME``\n setting to the current time when the request is made. If the blacklist app\n is in use and the ``BLACKLIST_AFTER_ROTATION`` setting is set to ``True``,\n refresh tokens submitted to the refresh view will be added to the blacklist.\n\nBLACKLIST_AFTER_ROTATION\n When set to ``True``, causes refresh tokens submitted to the\n ``TokenRefreshView`` to be added to the blacklist if the blacklist app is in\n use and the ``ROTATE_REFRESH_TOKENS`` setting is set to ``True``.\n\nALGORITHM\n The algorithm from the PyJWT library which will be used to perform\n signing/verification operations on tokens. To use symmetric HMAC signing and\n verification, the following algorithms may be used: ``'HS256'``, ``'HS384'``,\n ``'HS512'``. When an HMAC algorithm is chosen, the ``SIGNING_KEY`` setting\n will be used as both the signing key and the verifying key. In that case,\n the ``VERIFYING_KEY`` setting will be ignored. To use asymmetric RSA signing\n and verification, the following algorithms may be used: ``'RS256'``,\n ``'RS384'``, ``'RS512'``. When an RSA algorithm is chosen, the\n ``SIGNING_KEY`` setting must be set to a string which contains an RSA private\n key. Likewise, the ``VERIFYING_KEY`` setting must be set to a string which\n contains an RSA public key.\n\nSIGNING_KEY\n The signing key which is used to sign the content of generated tokens. For\n HMAC signing, this should be a random string with at least as many bits of\n data as is required by the signing protocol. For RSA signing, this\n should be a string which contains an RSA private key which is 2048 bits or\n longer. Since Simple JWT defaults to using 256-bit HMAC signing, the\n ``SIGNING_KEY`` setting defaults to the value of the ``SECRET_KEY`` setting\n for your django project. Although this is the most reasonable default that\n Simple JWT can provide, it is recommended that developers change this setting\n to a value which is independent from the django project secret key. This\n will make changing the signing key used for tokens easier in the event that\n it is compromised.\n\nVERIFYING_KEY\n The verifying key which is used to verify the content of generated tokens.\n If an HMAC algorithm has been specified by the ``ALGORITHM`` setting, the\n ``VERIFYING_KEY`` setting will be ignored and the value of the\n ``SIGNING_KEY`` setting will be used. If an RSA algorithm has been specified\n by the ``ALGORITHM`` setting, the ``VERIFYING_KEY`` setting must be set to a\n string which contains an RSA public key.\n\nAUTH_HEADER_TYPES\n The authorization header type(s) that will be accepted for views that require\n authentication. For example, a value of ``'Bearer'`` means that views\n requiring authentication would look for a header with the following format:\n ``Authorization: Bearer ``. This setting may also contain a list or\n tuple of possible header types (e.g. ``('Bearer', 'JWT')``). If a list or\n tuple is used in this way, and authentication fails, the first item in the\n collection will be used to build the \"WWW-Authenticate\" header in the\n response.\n\nUSER_ID_FIELD\n The database field from the user model that will be included in generated\n tokens to identify users. It is recommended that the value of this setting\n specifies a field which does not normally change once its initial value is\n chosen. For example, specifying a \"username\" or \"email\" field would be a\n poor choice since an account's username or email might change depending on\n how account management in a given service is designed. This could allow a\n new account to be created with an old username while an existing token is\n still valid which uses that username as a user identifier.\n\nUSER_ID_CLAIM\n The claim in generated tokens which will be used to store user identifiers.\n For example, a setting value of ``'user_id'`` would mean generated tokens\n include a \"user_id\" claim that contains the user's identifier.\n\nAUTH_TOKEN_CLASSES\n A list of dot paths to classes which specify the types of token that are\n allowed to prove authentication. More about this in the \"Token types\"\n section below.\n\nTOKEN_TYPE_CLAIM\n The claim name that is used to store a token's type. More about this in the\n \"Token types\" section below.\n\nJTI_CLAIM\n The claim name that is used to store a token's unique identifier. This\n identifier is used to identify revoked tokens in the blacklist app. It may\n be necessary in some cases to use another claim besides the default \"jti\"\n claim to store such a value.\n\nSLIDING_TOKEN_LIFETIME\n A ``datetime.timedelta`` object which specifies how long sliding tokens are\n valid to prove authentication. This ``timedelta`` value is added to the\n current UTC time during token generation to obtain the token's default \"exp\"\n claim value. More about this in the \"Sliding tokens\" section below.\n\nSLIDING_TOKEN_REFRESH_LIFETIME\n A ``datetime.timedelta`` object which specifies how long sliding tokens are\n valid to be refreshed. This ``timedelta`` value is added to the current UTC\n time during token generation to obtain the token's default \"exp\" claim value.\n More about this in the \"Sliding tokens\" section below.\n\nSLIDING_TOKEN_REFRESH_EXP_CLAIM\n The claim name that is used to store the exipration time of a sliding token's\n refresh period. More about this in the \"Sliding tokens\" section below.\n\nCustomizing token claims\n------------------------\n\nIf you wish to customize the claims contained in web tokens which are generated\nby the ``TokenObtainPairView`` and ``TokenObtainSlidingView`` views, create a\nsubclass for the desired view as well as a subclass for its corresponding\nserializer. Here's an example of how to customize the claims in tokens\ngenerated by the ``TokenObtainPairView``:\n\n.. code-block:: python\n\n from rest_framework_simplejwt.serializers import TokenObtainPairSerializer\n from rest_framework_simplejwt.views import TokenObtainPairView\n\n class MyTokenObtainPairSerializer(TokenObtainPairSerializer):\n @classmethod\n def get_token(cls, user):\n token = super().get_token(user)\n\n # Add custom claims\n token['name'] = user.name\n # ...\n\n return token\n\n class MyTokenObtainPairView(TokenObtainPairView):\n serializer_class = MyTokenObtainPairSerializer\n\nNote that the example above will cause the customized claims to be present in\nboth refresh *and* access tokens which are generated by the view. This follows\nfrom the fact that the ``get_token`` method above produces the *refresh* token\nfor the view, which is in turn used to generate the view's access token.\n\nAs with the standard token views, you'll also need to include a url route to\nyour subclassed view.\n\nCreating tokens manually\n------------------------\n\nSometimes, you may wish to manually create a token for a user. This could be\ndone as follows:\n\n.. code-block:: python\n\n from rest_framework_simplejwt.tokens import RefreshToken\n\n def get_tokens_for_user(user):\n refresh = RefreshToken.for_user(user)\n\n return {\n 'refresh': str(refresh),\n 'access': str(refresh.access_token),\n }\n\nThe above function ``get_tokens_for_user`` will return the serialized\nrepresentations of new refresh and access tokens for the given user. In\ngeneral, a token for any subclass of ``rest_framework_simplejwt.tokens.Token``\ncan be created in this way.\n\nToken types\n-----------\n\nSimple JWT provides two different token types which can be used to prove\nauthentication. In a token's payload, its type can be identified by the value\nof its token type claim, which is \"token_type\" by default. This may have a\nvalue of \"access\", \"sliding\", or \"refresh\" however refresh tokens are not\nconsidered valid for authentication at this time. The claim name used to store\nthe type can be customized by changing the ``TOKEN_TYPE_CLAIM`` setting.\n\nBy default, Simple JWT expects an \"access\" token to prove authentication. The\nallowed auth token types are determined by the value of the\n``AUTH_TOKEN_CLASSES`` setting. This setting contains a list of dot paths to\ntoken classes. It includes the\n``'rest_framework_simplejwt.tokens.AccessToken'`` dot path by default but may\nalso include the ``'rest_framework_simplejwt.tokens.SlidingToken'`` dot path.\nEither or both of those dot paths may be present in the list of auth token\nclasses. If they are both present, then both of those token types may be used\nto prove authentication.\n\nSliding tokens\n--------------\n\nSliding tokens offer a more convenient experience to users of tokens with the\ntrade-offs of being less secure and, in the case that the blacklist app is\nbeing used, less performant. A sliding token is one which contains both an\nexpiration claim and a refresh expiration claim. As long as the timestamp in a\nsliding token's expiration claim has not passed, it can be used to prove\nauthentication. Additionally, as long as the timestamp in its refresh\nexpiration claim has not passed, it may also be submitted to a refresh view to\nget another copy of itself with a renewed expiration claim.\n\nIf you want to use sliding tokens, change the ``AUTH_TOKEN_CLASSES`` setting to\n``('rest_framework_simplejwt.tokens.SlidingToken',)``. (Alternatively, the\n``AUTH_TOKEN_CLASSES`` setting may include dot paths to both the\n``AccessToken`` and ``SlidingToken`` token classes in the\n``rest_framework_simplejwt.tokens`` module if you want to allow both token\ntypes to be used for authentication.)\n\nAlso, include urls for the sliding token specific ``TokenObtainSlidingView``\nand ``TokenRefreshSlidingView`` views along side or in place of urls for the\naccess token specific ``TokenObtainPairView`` and ``TokenRefreshView`` views:\n\n.. code-block:: python\n\n from rest_framework_simplejwt.views import (\n TokenObtainSlidingView,\n TokenRefreshSlidingView,\n )\n\n urlpatterns = [\n ...\n url(r'^api/token/$', TokenObtainSlidingView.as_view(), name='token_obtain'),\n url(r'^api/token/refresh/$', TokenRefreshSlidingView.as_view(), name='token_refresh'),\n ...\n ]\n\nBe aware that, if you are using the blacklist app, Simple JWT will validate all\nsliding tokens against the blacklist for each authenticated request. This will\nreduce the performance of authenticated API views.\n\nBlacklist app\n-------------\n\nSimple JWT includes an app that provides token blacklist functionality. To use\nthis app, include it in your list of installed apps in ``settings.py``:\n\n.. code-block:: python\n\n # Django project settings.py\n\n ...\n\n INSTALLED_APPS = (\n ...\n 'rest_framework_simplejwt.token_blacklist',\n ...\n }\n\nAlso, make sure to run ``python manage.py migrate`` to run the app's\nmigrations.\n\nIf the blacklist app is detected in ``INSTALLED_APPS``, Simple JWT will add any\ngenerated refresh or sliding tokens to a list of outstanding tokens. It will\nalso check that any refresh or sliding token does not appear in a blacklist of\ntokens before it considers it as valid.\n\nThe Simple JWT blacklist app implements its outstanding and blacklisted token\nlists using two models: ``OutstandingToken`` and ``BlacklistedToken``. Model\nadmins are defined for both of these models. To add a token to the blacklist,\nfind its corresponding ``OutstandingToken`` record in the admin and use the\nadmin again to create a ``BlacklistedToken`` record that points to the\n``OutstandingToken`` record.\n\nAlternatively, you can blacklist a token by creating a ``BlacklistMixin``\nsubclass instance and calling the instance's ``blacklist`` method:\n\n.. code-block:: python\n\n from rest_framework_simplejwt.tokens import RefreshToken\n\n token = RefreshToken(base64_encoded_token_string)\n token.blacklist()\n\nThis will create unique outstanding token and blacklist records for the token's\n\"jti\" claim or whichever claim is specified by the ``JTI_CLAIM`` setting.\n\nThe blacklist app also provides a management command, ``flushexpiredtokens``,\nwhich will delete any tokens from the outstanding list and blacklist that have\nexpired. You should set up a cron job on your server or hosting platform which\nruns this command daily.\n\nExperimental features\n---------------------\n\nJWTTokenUserAuthentication backend\n The ``JWTTokenUserAuthentication`` backend's ``authenticate`` method does not\n perform a database lookup to obtain a user instance. Instead, it returns a\n ``rest_framework_simplejwt.models.TokenUser`` instance which acts as a\n stateless user object backed only by a validated token instead of a record in\n a database. This can facilitate developing single sign-on functionality\n between separately hosted Django apps which all share the same token secret\n key. To use this feature, add the\n ``rest_framework_simplejwt.authentication.JWTTokenUserAuthentication``\n backend (instead of the default ``JWTAuthentication`` backend) to the Django\n REST Framework's ``DEFAULT_AUTHENTICATION_CLASSES`` config setting:\n\n .. code-block:: python\n\n REST_FRAMEWORK = {\n ...\n 'DEFAULT_AUTHENTICATION_CLASSES': (\n ...\n 'rest_framework_simplejwt.authentication.JWTTokenUserAuthentication',\n )\n ...\n }\n\nDevelopment and Running the Tests\n---------------------------------\n\nTo do development work for Simple JWT, make your own fork on Github, clone it\nlocally, make and activate a virtualenv for it, then from within the project\ndirectory:\n\n.. code-block:: bash\n\n pip install --upgrade pip setuptools\n pip install -e .[dev]\n\nTo run the tests:\n\n.. code-block:: bash\n\n pytest\n\nTo run the tests in all supported environments with tox, first `install pyenv\n`__. Next, install the relevant\nPython minor versions and create a ``.python-version`` file in the project\ndirectory:\n\n.. code-block:: bash\n\n pyenv install 3.7.x\n pyenv install 3.6.x\n pyenv install 3.5.x\n cat > .python-version <`__ as well as concepts from\nthe implementation of another JSON web token library for the Django REST\nFramework, `django-rest-framework-jwt\n`__. The licenses from\nboth of those projects have been included in this repository in the \"licenses\"\ndirectory.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/davesque/django-rest-framework-simplejwt", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "djangorestframework-simplejwt", "package_url": "https://pypi.org/project/djangorestframework-simplejwt/", "platform": "", "project_url": "https://pypi.org/project/djangorestframework-simplejwt/", "project_urls": { "Homepage": "https://github.com/davesque/django-rest-framework-simplejwt" }, "release_url": "https://pypi.org/project/djangorestframework-simplejwt/4.3.0/", "requires_dist": [ "django", "djangorestframework", "pyjwt", "bumpversion (<1,>=0.5.3) ; extra == 'dev'", "pytest-watch ; extra == 'dev'", "wheel ; extra == 'dev'", "twine ; extra == 'dev'", "ipython ; extra == 'dev'", "cryptography ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "pytest-django ; extra == 'dev'", "pytest-xdist ; extra == 'dev'", "pytest ; extra == 'dev'", "tox ; extra == 'dev'", "flake8 ; extra == 'dev'", "pep8 ; extra == 'dev'", "isort ; extra == 'dev'", "Sphinx (<2,>=1.6.5) ; extra == 'dev'", "sphinx-rtd-theme (>=0.1.9) ; extra == 'dev'", "python-jose (==3.0.0) ; extra == 'dev'", "Sphinx (<2,>=1.6.5) ; extra == 'doc'", "sphinx-rtd-theme (>=0.1.9) ; extra == 'doc'", "flake8 ; extra == 'lint'", "pep8 ; extra == 'lint'", "isort ; extra == 'lint'", "python-jose (==3.0.0) ; extra == 'python-jose'", "cryptography ; extra == 'test'", "pytest-cov ; extra == 'test'", "pytest-django ; extra == 'test'", "pytest-xdist ; extra == 'test'", "pytest ; extra == 'test'", "tox ; extra == 'test'" ], "requires_python": ">=3.5,<4", "summary": "A minimal JSON Web Token authentication plugin for Django REST Framework", "version": "4.3.0" }, "last_serial": 5147737, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "92e9bb29687ba06a5c46bccc17fc493f", "sha256": "9ebdea3ada488648877a43a7ae97cf9ef39373ace4017266a5fddc34165acb1d" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92e9bb29687ba06a5c46bccc17fc493f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10627, "upload_time": "2017-05-09T05:47:31", "url": "https://files.pythonhosted.org/packages/86/fe/b8db07fa78b1e3eacea9649148cbbd3bf386d8864ff242ad807dcd049369/djangorestframework_simplejwt-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13d9fab44cbd709a4432922f3552d6f6", "sha256": "87548305980ad94b7163252ad4f554226c1b7879d8ed4fb849030a5ce94e817c" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.0.tar.gz", "has_sig": false, "md5_digest": "13d9fab44cbd709a4432922f3552d6f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6309, "upload_time": "2017-05-09T05:47:32", "url": "https://files.pythonhosted.org/packages/74/01/2f760fb12892639b8414d0d6f8ad191bf162757252c5b70bdaddd06ae54b/djangorestframework_simplejwt-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "c230334f9d20a8ed5f0b42a5f17197b7", "sha256": "83b4be2c83924de9b20773366bb0095791b092b13e4b7b20ef6bd8f64bec9edb" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c230334f9d20a8ed5f0b42a5f17197b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10647, "upload_time": "2017-05-09T05:59:25", "url": "https://files.pythonhosted.org/packages/50/26/123757ed34f4287c33edccdb7fa06e29f1f8f80efd5fb2d51becd9d025ff/djangorestframework_simplejwt-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7a4504abd478c5a5fe4f225c3eae409", "sha256": "73a084612cdf090c1a3e0086b3faccb571d9df872bc89b714cdb704741c49718" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.1.tar.gz", "has_sig": false, "md5_digest": "b7a4504abd478c5a5fe4f225c3eae409", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6311, "upload_time": "2017-05-09T05:59:27", "url": "https://files.pythonhosted.org/packages/c8/34/ec352a9efcc13b4ed88ba575d96179013a0b9bc7051dfa13de2fe2072913/djangorestframework_simplejwt-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "873868d2b1b83c0399eca53d5351c09b", "sha256": "821a2aef2d4cede33a83fed199774add3670222119a5504fb6caefb135c5f28e" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "873868d2b1b83c0399eca53d5351c09b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15281, "upload_time": "2017-05-14T22:44:46", "url": "https://files.pythonhosted.org/packages/b9/48/d1667f87b1bdd54625d324fd9e070ffdc2a96125a35e4444a44abffdddd6/djangorestframework_simplejwt-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "edf851d90e0179cef407d0008366f503", "sha256": "bd9acae6d7af0e3776c9b92881b5af7ae73cf43d934bfecd829e87fd1f6cd2ea" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.2.tar.gz", "has_sig": false, "md5_digest": "edf851d90e0179cef407d0008366f503", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9005, "upload_time": "2017-05-14T22:44:49", "url": "https://files.pythonhosted.org/packages/b3/70/ab3676e5ae9adce6add6581e5dab941253cf19bb905ebdbfe2180efbe08e/djangorestframework_simplejwt-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "b5990eed7e87e973a4c5e837b7cdd92b", "sha256": "b5cdb3a7bef5897e23e093a1133d0d0d57e78198d2bff0696e09945b82b2a035" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b5990eed7e87e973a4c5e837b7cdd92b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15716, "upload_time": "2017-05-15T17:31:49", "url": "https://files.pythonhosted.org/packages/1b/e9/d0227eb60c85c6e0e0f604f0fb4b16ad3f3793fbc295963d5d7e1d465ef6/djangorestframework_simplejwt-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62b3a42f60a3eaca1ff983e8eaa59df6", "sha256": "f87d4f4f51c48c21668fc0425a1b04d316f82c1552f6c8c0291ef0eb78edb1bf" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.2.1.tar.gz", "has_sig": false, "md5_digest": "62b3a42f60a3eaca1ff983e8eaa59df6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9356, "upload_time": "2017-05-15T17:31:51", "url": "https://files.pythonhosted.org/packages/64/64/9f044cb46f3d2790163f4a8a966091f2196c52747a884822cceed1a19049/djangorestframework_simplejwt-1.2.1.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "d8c973bec0072742009e75cbdd7e4207", "sha256": "49c05b40fecb7987a2d706100615004ab9a255cf3979e0a33445ca20499ac8e2" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8c973bec0072742009e75cbdd7e4207", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17904, "upload_time": "2017-06-17T01:38:35", "url": "https://files.pythonhosted.org/packages/8a/24/6eb661eaa0791658cbeff344bc77db55f2deefbf216dd6dd32a42181f398/djangorestframework_simplejwt-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb44f6f018a70dd600f3518d08c08c2b", "sha256": "ad4fe80a667ab106490c133dbfda96ea31c0c5f52d24fe3c2a4267d9fe3c2556" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.3.tar.gz", "has_sig": false, "md5_digest": "fb44f6f018a70dd600f3518d08c08c2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10846, "upload_time": "2017-06-17T01:38:37", "url": "https://files.pythonhosted.org/packages/f6/8a/55afb87bb832a7dd44eed02f56dc38abe8803329781fc00254cb200dc605/djangorestframework_simplejwt-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "9c013b5004064dd3d83680606798d46d", "sha256": "73541b9db5f5490dcda158c5781b0dc4d0e7b81df4838607b60a5ea4c1273cff" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c013b5004064dd3d83680606798d46d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18178, "upload_time": "2017-06-19T07:12:18", "url": "https://files.pythonhosted.org/packages/1f/9e/8064e045e5d15a7eddbcbe929aaefc1464d11c3ce3af358ff7ee9d08cefa/djangorestframework_simplejwt-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d212fd4a2adf2f1d3727913cd852783", "sha256": "9f7f01c1029ac7de9f7481efb6b701b525ab729b9065af003d9de1c83522b474" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.4.tar.gz", "has_sig": false, "md5_digest": "9d212fd4a2adf2f1d3727913cd852783", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11125, "upload_time": "2017-06-19T07:12:20", "url": "https://files.pythonhosted.org/packages/12/d6/7058f9fe0fb50a27d8d9ceb756545b17673e6e8365ae24d7c5540a5b6600/djangorestframework_simplejwt-1.4.tar.gz" } ], "1.5": [], "1.5.1": [ { "comment_text": "", "digests": { "md5": "e7614321057c0cf3b7c4eb64244d8939", "sha256": "301e76cef939ee391da203ca6ce63462690ec0eca1aa96d59b14470a4110b89a" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7614321057c0cf3b7c4eb64244d8939", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19031, "upload_time": "2017-06-22T23:01:47", "url": "https://files.pythonhosted.org/packages/58/2b/104500e7638b5539240659834460a35017e11915a7c69ae95db7334a4be9/djangorestframework_simplejwt-1.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "beb3386692e00f6c920646161f98edee", "sha256": "382517ed4f22ec796a9bf084f8ac20112511c586ce1973d34a3828d7aea25b27" }, "downloads": -1, "filename": "djangorestframework_simplejwt-1.5.1.tar.gz", "has_sig": false, "md5_digest": "beb3386692e00f6c920646161f98edee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11561, "upload_time": "2017-06-22T23:01:49", "url": "https://files.pythonhosted.org/packages/49/6e/7b6d986c7809e6b85b1125130f58ac089719b27d0127c71c08570ccbdfad/djangorestframework_simplejwt-1.5.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "06a91a78ec30d41773cb6a382752dd72", "sha256": "c6d2d93841ddab784d763f831febae7d183b2fecdd6596e6e4398d1fa8ef916a" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06a91a78ec30d41773cb6a382752dd72", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27072, "upload_time": "2017-06-27T17:13:17", "url": "https://files.pythonhosted.org/packages/44/eb/5a837db220fcfc461830f1ce3ee4675c5dafe8e7c6a28c41e2b87b979a00/djangorestframework_simplejwt-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e79b8a25f99e3da425adc8d75529a53", "sha256": "987a4989ab3ab1cf8b0a98e75e18d04c0a09eaed7fc9c7f84f958e8457111092" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.0.tar.gz", "has_sig": false, "md5_digest": "6e79b8a25f99e3da425adc8d75529a53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16114, "upload_time": "2017-06-27T17:13:19", "url": "https://files.pythonhosted.org/packages/d9/a3/6f8388eae37b2343a67c8863add8b016d6b60293d60c7102f7aa66901d4b/djangorestframework_simplejwt-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "d2db48ac3f7d1ecb29570f88ec95ae62", "sha256": "1c4b32ee41993c952ced41549a58a7af51e725bc19c14b2a1f7d8cdf57cd05b7" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2db48ac3f7d1ecb29570f88ec95ae62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27379, "upload_time": "2017-06-28T05:00:43", "url": "https://files.pythonhosted.org/packages/6c/64/e3a0ed8a7c4e947f55957e72e4a08d561c2dac63c3145668d384ad405ec6/djangorestframework_simplejwt-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "700b1176835f3d936e98a85de1ac1c5d", "sha256": "0d9a04a8f04a847d9ea6859f52810e89375c88138caaab877c626ac973db8f45" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.1.tar.gz", "has_sig": false, "md5_digest": "700b1176835f3d936e98a85de1ac1c5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16346, "upload_time": "2017-06-28T05:00:45", "url": "https://files.pythonhosted.org/packages/d5/9f/9ad683b5ba22624db9982e96d7016c1dde7142dabcdee7f6698a5f126d40/djangorestframework_simplejwt-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "2d61cd7f268c835a3588510c11202521", "sha256": "9273f735eaea6ff6b1eacfcc75fe6821a0debd600419facbb199ca7259d21dae" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2d61cd7f268c835a3588510c11202521", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27791, "upload_time": "2017-06-28T06:27:51", "url": "https://files.pythonhosted.org/packages/b9/d4/26e9cd7ae3cdbb79d9c71964b6c495c902e494b93ce86f83eb0e7aac0488/djangorestframework_simplejwt-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "252432dbd2d00195ee6c907bf44e4619", "sha256": "8d72e56a92772840e026b65ee1aa0d9c329271231ae7b51cb14e5fcf10a49ea3" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.2.tar.gz", "has_sig": false, "md5_digest": "252432dbd2d00195ee6c907bf44e4619", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16712, "upload_time": "2017-06-28T06:27:53", "url": "https://files.pythonhosted.org/packages/cd/ca/8ea94705eb964cad442c236a147b7f631132a439c3a2c0b9ef4de1f19753/djangorestframework_simplejwt-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "14e6e16586982070ac61058073421b1e", "sha256": "e85a091958f4dfce60c0cb634b86a7f2a4429ba71b5256575e15234ac4d167ad" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "14e6e16586982070ac61058073421b1e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27940, "upload_time": "2017-06-29T22:41:16", "url": "https://files.pythonhosted.org/packages/e2/1d/92cb54294e169c9163c848109b3003ef705712c37a485f8ea4cdf05849d3/djangorestframework_simplejwt-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f8b17cbbead53b9c61356886e3e9d65", "sha256": "2c24b0ef35f04bf1ed8425098c0af9519e03f2afb0bd60eafa5926a2d62f05bc" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.3.tar.gz", "has_sig": false, "md5_digest": "4f8b17cbbead53b9c61356886e3e9d65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16757, "upload_time": "2017-06-29T22:41:17", "url": "https://files.pythonhosted.org/packages/ad/70/5f70d957101cbbf7ea7044cea230d9087f6fe2576f8a6369ad843cadd0d1/djangorestframework_simplejwt-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "8cd26b4588d8a7a5703a1e3edbd23bc0", "sha256": "92fd2a51aa4ab8f330146d7d3b39cc8c9369474ded41bfefad77561484696dc5" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8cd26b4588d8a7a5703a1e3edbd23bc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27944, "upload_time": "2017-06-29T23:08:50", "url": "https://files.pythonhosted.org/packages/2f/05/3672aa0a687685dbabb09f2ed834cfa2167c3c10a9a71e030ee0dffc04f8/djangorestframework_simplejwt-2.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5203a9249182d8695ed835c560c713db", "sha256": "970876b801d2e47f76d5205409eee9c0a179ac0235c1b9063556f4e3760b8eff" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.4.tar.gz", "has_sig": false, "md5_digest": "5203a9249182d8695ed835c560c713db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16753, "upload_time": "2017-06-29T23:08:52", "url": "https://files.pythonhosted.org/packages/8f/34/b3424d7be85a9db351f993132b7bfc3bfe0f5afc3dc5fb6fe1cecfc0ae1d/djangorestframework_simplejwt-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "a746e69a76d5d7001590abee80fc6893", "sha256": "d8c15ecf1a81e50e1525d27904fa76661ee91231479d0918985e75c41052d58a" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a746e69a76d5d7001590abee80fc6893", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27944, "upload_time": "2017-07-06T19:47:29", "url": "https://files.pythonhosted.org/packages/ed/2e/2ecf616fb3f9cd58bff39c6de186317b9cf7515243905cac8cf43c998881/djangorestframework_simplejwt-2.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "684d8a0687444ff4874cb8c5df56f4c2", "sha256": "eac0c6ddb4db56776a2f629674bb0894860e8196d2eb7bac7f06bf88981dd751" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.0.5.tar.gz", "has_sig": false, "md5_digest": "684d8a0687444ff4874cb8c5df56f4c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16789, "upload_time": "2017-07-06T19:47:30", "url": "https://files.pythonhosted.org/packages/00/f5/91d53142ec0ae89dfafe498aa5ecb059eeb3ab9c6267d67a046f5adb71d7/djangorestframework_simplejwt-2.0.5.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "06b32cba6745c1eca8b5d5934b952858", "sha256": "d639bdc542848dc770ae5c0384b2a71d6d0fd3cc5b7d6c69edf2397b06c96caf" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06b32cba6745c1eca8b5d5934b952858", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27966, "upload_time": "2017-07-08T02:45:07", "url": "https://files.pythonhosted.org/packages/06/77/e53e11bd07095e572103435ca0785ad677cc7be42754b08a36daf3017258/djangorestframework_simplejwt-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5e6a8ca77900f268211ef86d33ab004", "sha256": "d689e50e45b9368e34268776594ac7e72275e62bd168ac5fd0aa7f41fdb2e6bd" }, "downloads": -1, "filename": "djangorestframework_simplejwt-2.1.tar.gz", "has_sig": false, "md5_digest": "c5e6a8ca77900f268211ef86d33ab004", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16832, "upload_time": "2017-07-08T02:45:08", "url": "https://files.pythonhosted.org/packages/30/c5/a244be9bf99f6e45f12b4551773d1393b913a1980972d2977f7a71046f8c/djangorestframework_simplejwt-2.1.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "e7adf8dce8c132c777fe99dcc87444db", "sha256": "a2bafa63f65c2edcdb90e9ae3b9cfdf61bd7ead831e474f74a8e61b036d53f43" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7adf8dce8c132c777fe99dcc87444db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33773, "upload_time": "2017-10-18T22:48:35", "url": "https://files.pythonhosted.org/packages/1c/5a/ec7bf1d6c978dd6c039ea1c31dc01bae45a4640e3b98a6b1a2b941828d33/djangorestframework_simplejwt-3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61b17a99f31d71ee59b0c62b6fda6e48", "sha256": "3d5f4340aed93cb5472d1b9e3e820c6a7fc903c5ce826c3bd788dbdaee70b960" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.0.tar.gz", "has_sig": false, "md5_digest": "61b17a99f31d71ee59b0c62b6fda6e48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19412, "upload_time": "2017-10-18T22:48:37", "url": "https://files.pythonhosted.org/packages/34/55/0df5f17e65d9d116249b7b4ee2dfe5ec69de21fbf1dd9829e17343943322/djangorestframework_simplejwt-3.0.tar.gz" } ], "3.1": [ { "comment_text": "", "digests": { "md5": "00f93fecc77b502e452ab6f002c746f3", "sha256": "3b4533e4eda1d0e8cbf72efdcffbfe2601068e24595ae3599dca104dd0bc7e8a" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "00f93fecc77b502e452ab6f002c746f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34200, "upload_time": "2017-10-20T23:08:18", "url": "https://files.pythonhosted.org/packages/0f/08/ebcdb404fa5b29b86f5052c5f5e14d63845f458cdf9da916af39607166ba/djangorestframework_simplejwt-3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7711b7229b8544dd17ca5dec70cfa0da", "sha256": "0f5f4bdaf632848788b8725172d84a22ff7a53bbc9b276b1825da8944c6a3714" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.1.tar.gz", "has_sig": false, "md5_digest": "7711b7229b8544dd17ca5dec70cfa0da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19721, "upload_time": "2017-10-20T23:08:19", "url": "https://files.pythonhosted.org/packages/74/68/7331513970ea08b51dd25c2cf49358edcf1e1d1d5a420c241e844baee406/djangorestframework_simplejwt-3.1.tar.gz" } ], "3.2": [ { "comment_text": "", "digests": { "md5": "51f581b2bf5e3b9c8f10a4dae7128b52", "sha256": "7a0a57a71580f67214c09ecc600f35dd2bd61d8c3b9d1d0f7edc2455c293b0f0" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51f581b2bf5e3b9c8f10a4dae7128b52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35881, "upload_time": "2017-10-27T00:46:34", "url": "https://files.pythonhosted.org/packages/5a/84/5833d212f73efa279fb717b1c8eb9200ba9f9ff01059e86e63471f843a6c/djangorestframework_simplejwt-3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4f16490f7b54430d5242452123b03a6", "sha256": "7414da6ea7275b5ba97418fa5c0b130ad414a400bf0e8c794c67288afe0d6e86" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.tar.gz", "has_sig": false, "md5_digest": "d4f16490f7b54430d5242452123b03a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20945, "upload_time": "2017-10-27T00:46:35", "url": "https://files.pythonhosted.org/packages/fb/5f/46d5dea4da818201f6cc2835efe2e025bf7e036f9c2cf331bd80d60651c9/djangorestframework_simplejwt-3.2.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "06e97570c1a9543c0a10bcde25832bcd", "sha256": "a616513c7d2fe125d81a228747eebbd7cb73e72ebd4cc1af2f7d6965cdbf7350" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06e97570c1a9543c0a10bcde25832bcd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35818, "upload_time": "2018-01-31T18:59:49", "url": "https://files.pythonhosted.org/packages/30/9e/2f161eb308afbc94d2dded0d79baa8d8efc04297cbafa3cb14480e858bd7/djangorestframework_simplejwt-3.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2884dd80fd69bd7efcd2492635ddb6e3", "sha256": "685a95bd3227ac5fdb94621a5ea9f18def2b91f853bb57919d70cef8aa72518f" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.1.tar.gz", "has_sig": false, "md5_digest": "2884dd80fd69bd7efcd2492635ddb6e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26844, "upload_time": "2018-01-31T18:59:51", "url": "https://files.pythonhosted.org/packages/b5/15/721e1f2362de6752092e707c1a1a4ff448fe19190b68744a17a2f1960051/djangorestframework_simplejwt-3.2.1.tar.gz" } ], "3.2.2": [ { "comment_text": "", "digests": { "md5": "af33ccc5e1d803ebe04b55a218996c49", "sha256": "e590570267b7745c65425fe99ec6f7604c531d03c05b617d0512e3a45499f926" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af33ccc5e1d803ebe04b55a218996c49", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35912, "upload_time": "2018-03-05T06:34:37", "url": "https://files.pythonhosted.org/packages/fd/db/80ff3d4013059329cebd77f5a1b3505c75bb5a23b809b61bceb1f0803bee/djangorestframework_simplejwt-3.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "097f1da6a1fedef69a712ebe4defe097", "sha256": "bbdc7805342e4cc71b8e67c61636367813c7921cef779d61c24bc5570e928197" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.2.tar.gz", "has_sig": false, "md5_digest": "097f1da6a1fedef69a712ebe4defe097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27053, "upload_time": "2018-03-05T06:34:38", "url": "https://files.pythonhosted.org/packages/1f/80/c2dc2f2bf11c2c305b77c9596eafe45479cbfb38b17a7b3151298a3bc145/djangorestframework_simplejwt-3.2.2.tar.gz" } ], "3.2.3": [ { "comment_text": "", "digests": { "md5": "e2a0e1f7b1fa6577bcc05b1044ace9d3", "sha256": "7e768f4198319ab81dbf56c3c873c83df6a2c116dbdc08d180920346c970f9a3" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2a0e1f7b1fa6577bcc05b1044ace9d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36002, "upload_time": "2018-03-07T02:59:33", "url": "https://files.pythonhosted.org/packages/3d/d7/92c717da4e3474fef8a5415391170eba60be16a4e531c9027c38b2c329c8/djangorestframework_simplejwt-3.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad7e9dc0affb44bb56b47ff97a321cad", "sha256": "f047610ec3038dc3b2017538c60f5623a27fc834348217540e4a00db0276f8c6" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.2.3.tar.gz", "has_sig": false, "md5_digest": "ad7e9dc0affb44bb56b47ff97a321cad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27123, "upload_time": "2018-03-07T02:59:35", "url": "https://files.pythonhosted.org/packages/c7/df/b4458e0dde36881a7404ef940052441ff7ef02f6bfadee9fc2398a0e6804/djangorestframework_simplejwt-3.2.3.tar.gz" } ], "3.3": [ { "comment_text": "", "digests": { "md5": "8e67a53b986144e482c6b91c1833f795", "sha256": "ce118a3f39499de980aeffef020f421b4689bc8cc14ad236b06a7f6f3d137784" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8e67a53b986144e482c6b91c1833f795", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29151, "upload_time": "2018-11-15T19:13:24", "url": "https://files.pythonhosted.org/packages/58/bf/bcb92228cbf669bf634e78a57ab75c3205aba6513567ada455a3fdf51074/djangorestframework_simplejwt-3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebf0e7c351c1f2dda215f351659dbaea", "sha256": "9796dd89086999993475a25f2a8ba39b56a5b372cf9b2475d9b29afcf7737be6" }, "downloads": -1, "filename": "djangorestframework_simplejwt-3.3.tar.gz", "has_sig": false, "md5_digest": "ebf0e7c351c1f2dda215f351659dbaea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29303, "upload_time": "2018-11-15T19:13:25", "url": "https://files.pythonhosted.org/packages/5a/5b/c9266229f6765a4db36e5005bfbcd21f42fdbd6b9e198109a7009a79dc34/djangorestframework_simplejwt-3.3.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "48e2f7fd4715958c60546e1b97adeee1", "sha256": "5383639106cbc561044d0893a5bfd22dd98b30a11b5e2f7e9da77b333fa6c0b7" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48e2f7fd4715958c60546e1b97adeee1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29059, "upload_time": "2019-02-23T21:51:20", "url": "https://files.pythonhosted.org/packages/03/cc/856306713f6e1ff3105de6e22612ae68fee633f527f105042aa7bd9d67cf/djangorestframework_simplejwt-4.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56b399b557012f9ab687c9a93e3e9390", "sha256": "5fb5153a9051fefe6229492e8b42a4c03b6ee802ea1865c944ff09088fe7340f" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.0.0.tar.gz", "has_sig": false, "md5_digest": "56b399b557012f9ab687c9a93e3e9390", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29236, "upload_time": "2019-02-23T21:51:22", "url": "https://files.pythonhosted.org/packages/f2/eb/e2b3c3305dc8f4b6048ddca8a812b603d495da42b3643b1d5ef42dfc8cd8/djangorestframework_simplejwt-4.0.0.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "2fbe62f38b3609fafc07f5ac76bcf304", "sha256": "d88875f47063b7e7bd5ad30f399e6a1e7044d22e9809beda9e3541f9a58de695" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2fbe62f38b3609fafc07f5ac76bcf304", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28485, "upload_time": "2019-03-08T21:33:16", "url": "https://files.pythonhosted.org/packages/46/8d/c4c32458c609c093884d649d3374bbd6de882aa00bfade8cfcb6a941e31b/djangorestframework_simplejwt-4.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3fcb0f68aef59c82ebcbcb6cd128cad", "sha256": "03c145cc790bdf7265e2361e95a01bd182d241fbd6ed22c8e6f17d1ebe87ead0" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.0.tar.gz", "has_sig": false, "md5_digest": "a3fcb0f68aef59c82ebcbcb6cd128cad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29116, "upload_time": "2019-03-08T21:33:18", "url": "https://files.pythonhosted.org/packages/67/ba/0a19ac07b278d276855753eaf6bd1fc90fef11420d18123c126c76cd602f/djangorestframework_simplejwt-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "03ae06901f30eec29d3634caf8c41de5", "sha256": "efc4b6a3e0f72eeb6ffc88744fe663b34cc621d5ce7a86c1ee4c60b7af829e1f" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03ae06901f30eec29d3634caf8c41de5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28705, "upload_time": "2019-03-28T18:01:14", "url": "https://files.pythonhosted.org/packages/9e/ed/76014b748af56c894980bd7662fe96a37394c81129493c9b14cd97c0b4d6/djangorestframework_simplejwt-4.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88f35ead4789c38437d16048b157843a", "sha256": "2f0eecb1c8d48c5bcca05af864ce7804ddc33604979a00fa902714169b2374d2" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.1.tar.gz", "has_sig": false, "md5_digest": "88f35ead4789c38437d16048b157843a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30728, "upload_time": "2019-03-28T18:01:17", "url": "https://files.pythonhosted.org/packages/28/2e/dae80fe43a6f6ef3a1a25b94938fe1d7eb19bb1d102603c7b6610b4ba4a1/djangorestframework_simplejwt-4.1.1.tar.gz" } ], "4.1.2": [ { "comment_text": "", "digests": { "md5": "e8c3a9109a4523a2f0f83095794af578", "sha256": "9e0bde3663c16ff3206c174806ba139d6f62b536332556a0fa56f723a6245fd4" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e8c3a9109a4523a2f0f83095794af578", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28731, "upload_time": "2019-04-01T21:55:22", "url": "https://files.pythonhosted.org/packages/be/7b/5eeedb194bc2c5558ef48ad5ccf6fcf206bf966ce11001e39e6296523ae8/djangorestframework_simplejwt-4.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e5bb9a0f0a68614dff06e95059d0788", "sha256": "e0baee46d6442e30ccc8f12ffc81bfbcc3580de0e9bd7135b4f9199afa4fbedb" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.2.tar.gz", "has_sig": false, "md5_digest": "5e5bb9a0f0a68614dff06e95059d0788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30771, "upload_time": "2019-04-01T21:55:23", "url": "https://files.pythonhosted.org/packages/2c/a2/9982c0369b1ad3d56be25a6af602639f8ba5004ad6958ab0c7058a698ee9/djangorestframework_simplejwt-4.1.2.tar.gz" } ], "4.1.3": [ { "comment_text": "", "digests": { "md5": "4dfd296c6b53672c97b768b3e00acd73", "sha256": "643ff92070ad3de03be2d48d96983253451973097e52ae1616a639a74ddd8b54" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dfd296c6b53672c97b768b3e00acd73", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28731, "upload_time": "2019-04-04T19:05:20", "url": "https://files.pythonhosted.org/packages/52/ee/d4a3bcb9b6be005631dee48c1f5cbcb6c96f66b1df7079ef7a8572329cc7/djangorestframework_simplejwt-4.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de991b9a9cf887540008a26b8e65a8d1", "sha256": "dfcfdb65e366b3b0fb1bce7b9dd540096b221146f54d7701aa4ac915ce905b2a" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.3.tar.gz", "has_sig": false, "md5_digest": "de991b9a9cf887540008a26b8e65a8d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30776, "upload_time": "2019-04-04T19:05:22", "url": "https://files.pythonhosted.org/packages/20/1f/d04e16f82e80b88c0083b9bc0020b4cfbb4820dc4b9238b361fa594592a1/djangorestframework_simplejwt-4.1.3.tar.gz" } ], "4.1.4": [ { "comment_text": "", "digests": { "md5": "afe21f201d7ef18dc6cfd834bfdcadf3", "sha256": "9ed708944eba7b8e4b5380c3f736ec688caad44e578ee7445b49b3b87ff9bad0" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "afe21f201d7ef18dc6cfd834bfdcadf3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28732, "upload_time": "2019-04-09T20:49:42", "url": "https://files.pythonhosted.org/packages/ef/91/b9959e028044a61dc5905e93046e3f7483a2dce1a823248729ff11048f51/djangorestframework_simplejwt-4.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c205ff194e31fa3fcc0a80016100adcc", "sha256": "92b96b5786d54a6c55c18ab9029cbd8c193eb7e5581b1bd80ded2b176d8594dd" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.4.tar.gz", "has_sig": false, "md5_digest": "c205ff194e31fa3fcc0a80016100adcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32510, "upload_time": "2019-04-09T20:49:44", "url": "https://files.pythonhosted.org/packages/dd/da/93f4d142d1b6fd9a5490706d48b3581bd4b414ca118d639d2eee93abaef5/djangorestframework_simplejwt-4.1.4.tar.gz" } ], "4.1.5": [ { "comment_text": "", "digests": { "md5": "dfc73049e18a8196fc15307671e26e93", "sha256": "ac332afac498a031218abe7b5220f77c6619dc5b0b3128cb9181fc03fdb8cb34" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "dfc73049e18a8196fc15307671e26e93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4", "size": 28738, "upload_time": "2019-04-09T21:04:58", "url": "https://files.pythonhosted.org/packages/3c/23/6907009b16c73d13ce696574d8a9800573f88f0c2bb1abb15ba55d2a7aa9/djangorestframework_simplejwt-4.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "beb7f0d1eabcf0a9788f34112a5c8bea", "sha256": "6fbbf385fec78e1e081c8346947ba9a8a8c6e08afadd6cd1139cbc39c123628e" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.1.5.tar.gz", "has_sig": false, "md5_digest": "beb7f0d1eabcf0a9788f34112a5c8bea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4", "size": 32519, "upload_time": "2019-04-09T21:05:00", "url": "https://files.pythonhosted.org/packages/aa/9e/694e37aa4bb5071fecf290b8858d9131ec813927c2f0e894e9d57a71712b/djangorestframework_simplejwt-4.1.5.tar.gz" } ], "4.2.0": [ { "comment_text": "", "digests": { "md5": "5b01eb16d3b2d25311d08dc34c9a7a93", "sha256": "6e7a4edeed5f9d342dc1b4c6e00a315e09e26ca49001c7af5f864b8114e865a5" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b01eb16d3b2d25311d08dc34c9a7a93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4", "size": 28769, "upload_time": "2019-04-14T01:39:55", "url": "https://files.pythonhosted.org/packages/5c/8e/ba169f88a2ec783c0cd1548bb292abed850576d8aba76484774b1d08f9c8/djangorestframework_simplejwt-4.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d05180253b0e4c897a27af95ae50ea12", "sha256": "af0396b9b1aa8eb3d2306e3abad3aedc1877c326c75d89310d14bd04df2a3b28" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.2.0.tar.gz", "has_sig": false, "md5_digest": "d05180253b0e4c897a27af95ae50ea12", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4", "size": 32533, "upload_time": "2019-04-14T01:39:57", "url": "https://files.pythonhosted.org/packages/97/ae/37ee043ec89004d66929a0a3612e22533e05240b8ec7efa2da52de28d78f/djangorestframework_simplejwt-4.2.0.tar.gz" } ], "4.3.0": [ { "comment_text": "", "digests": { "md5": "afd34c656946ff90122be152fcb0f005", "sha256": "4cb1a51bf9b098b983e1326a1cfc65fb0b3c5a2aa0fa43effdbf05dd6da5e8cb" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "afd34c656946ff90122be152fcb0f005", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4", "size": 29042, "upload_time": "2019-04-16T02:25:29", "url": "https://files.pythonhosted.org/packages/14/08/6339255643fa3882441285374a60d6d8ad1d4cb796e9693b1b84e6825f61/djangorestframework_simplejwt-4.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac917fff9b15de8ae5bdcde4f7dee015", "sha256": "d025211806622c53020aa4f66029f1f7305e38de6439116b4a842661fc02cf36" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.3.0.tar.gz", "has_sig": false, "md5_digest": "ac917fff9b15de8ae5bdcde4f7dee015", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4", "size": 33467, "upload_time": "2019-04-16T02:25:31", "url": "https://files.pythonhosted.org/packages/5d/93/f1734cc97ac74137ed85198d950ab8dca6ca721453c5db6496851db94ff6/djangorestframework_simplejwt-4.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "afd34c656946ff90122be152fcb0f005", "sha256": "4cb1a51bf9b098b983e1326a1cfc65fb0b3c5a2aa0fa43effdbf05dd6da5e8cb" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "afd34c656946ff90122be152fcb0f005", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4", "size": 29042, "upload_time": "2019-04-16T02:25:29", "url": "https://files.pythonhosted.org/packages/14/08/6339255643fa3882441285374a60d6d8ad1d4cb796e9693b1b84e6825f61/djangorestframework_simplejwt-4.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac917fff9b15de8ae5bdcde4f7dee015", "sha256": "d025211806622c53020aa4f66029f1f7305e38de6439116b4a842661fc02cf36" }, "downloads": -1, "filename": "djangorestframework_simplejwt-4.3.0.tar.gz", "has_sig": false, "md5_digest": "ac917fff9b15de8ae5bdcde4f7dee015", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4", "size": 33467, "upload_time": "2019-04-16T02:25:31", "url": "https://files.pythonhosted.org/packages/5d/93/f1734cc97ac74137ed85198d950ab8dca6ca721453c5db6496851db94ff6/djangorestframework_simplejwt-4.3.0.tar.gz" } ] }