All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Changes for the upcoming release can be found in the changelog.d
directory in
this repository.
Do NOT add changelog entries here! This changelog is managed by towncrier and is compiled at release time.
.. towncrier release notes start
- Added new encrypted PyPI API token for travis deployment. (#39)
- Fixed issues when the
JWT_GET_USER_SECRET_KEY
method is overridden,- If the payload contains a non-existent user, a validation error will be raised (same as when the method is not overridden).
- The
jwt_get_secret_key
will now use theJWT_PAYLOAD_GET_USERNAME_HANDLER
configuration. (#41)
- Added check in authentication if blacklist app is installed before checking if any Blacklisted tokens exist (#35)
- Security: Disallow refresh token for blacklisted tokens. (#37)
- Blacklisting allows the user to blacklist his own token. (#27)
- Drop support for Python 3.3 and 3.4 (#27)
- changed occurrences of
smart_text
tosmart_str
since it was deprecated in Django 3.X (#28)
-
Impersonation allows the service to perform actions on the client’s behalf. A typical use case would be troubleshooting. We can act like the user who submitted an issue without requiring its login credentials. (#26)
-
added
JWT_AUTH_COOKIE_*
settings paralleling Django'sSESSION_COOKIE_*
which are used forJWT_AUTH_COOKIE
andJWT_IMPERSONATION_COOKIE
This changes the default
Secure
attribute fromFalse
toTrue
. Users wishing to use JWT cookies over http (as in no TLS/SSL) need to setJWT_AUTH_COOKIE_SECURE
toFalse.
This change is intentional to follow common best common practice.
With Django versions >= 2.1.0, the
Samesite
attribute is set toLax
by default. (#29)
- Document compatibility with Python 3.7. (#23)
- Add support for Django 3.0, Python 3.8 and
djangorestframework
3.11 (#24)
-
- Run the test suite against the
demo
project. The same project can be used for local development as well. - Add the
serve
environment totox
that starts thedemo
project's development server. To use it, run:$ tox -e serve
(#24)
- Run the test suite against the
- Remove serialization on response data in
BaseJSONWebTokenAPIView
because it breaks custom response payload handlers which add extra data to the response payload. This change aligns this fork more closely with the original and makes it easier to use this fork as a drop-in replacement for the original. Also change the ReponsePayload from anamedtuple
to a dictionary becausenamedtuple
is not JSON serializable (#22)
-
- Added support for djangorestframework 3.10 (#18)
- Allow control of setting the
user_id
in the payload withJWT_PAYLOAD_INCLUDE_USER_ID
. (#20)
- Use pk to get profile's id in
rest_framework_jwt.utils.jwt_create_payload
. (#15)
- Pass
request
todjango.contrib.auth.authenticate
. (#14)
- Added
on_delete
totests.models.UserProfile.user
required by Django 2.2, and added Django 2.x, Python 3.7 and djangorestframework 3.9 to the support matrix. (#9)
No significant changes.
- Fixed inconsistent View names. (#7)
- Updated docs. Drop support for Django < 1.8 and DRF < 3.7.x. (#6)
- Switch to Travis CI build stages (#3)
- Project restructuring according to SDS code style and conventions. (#2)