- Added
JTI_CLAIMsetting to allow storing token identifiers under a different claim.
- We now return HTTP 401 for user not found or inactive.
- Restricted
setup.pyconfig to Python 3 only.
- Included translation files in release package.
- Updated
python-joseversion requirement.
- Fixed
KeyErrorinTokenObtainSerializer.validate.
- Added request pass-through on
django.contrib.auth.authenticatecall inTokenObtainSerializer. - Updated
TokenObtainSerializerto usefailAPI from parent class.
- Added language support for Brazilian Portuguese.
- Added support for automatic username lookup in
TokenUser.
- Removed Python 2 support.
- Fixed crash when empty AUTHORIZATION header is sent.
- Fixed testing DB transaction issues.
- Simplified/improved testing and dev setup.
- Switched to using bumpversion for release process.
- Removed official support for Python 3.4.
- Added support for Python 3.7.
- Added support for Django 2.1.
- Added support for DRF 3.9.
- Fixed issue with
WWW-Authenticateheader not being included in 401 responses.
- Added missing method
getonTokenbase class.
- Simplified some blacklist app code.
- Resolved possible race condition.
- Added
TokenObtainSerializer.get_tokenmethod to facilitate customization of token claims. - Added
TokenVerifyViewto allow verification of HMAC-signed tokens by API users who have no access to the signing key. - Renamed
AUTH_HEADER_TYPEsetting toAUTH_HEADER_TYPES. This setting now contains either a single valid auth header type or a list or tuple of valid auth header types. If authentication fails, and more than one string is present in this tuple or list, the first item in the list will be used to build the "WWW-Authenticate" header in the response.
- Moved handling of TokenError exceptions from inside of serializer
validatemethods into token viewpostmethods.
- Added support for refresh token rotation via
ROTATE_REFRESH_TOKENSandBLACKLIST_AFTER_ROTATIONsettings. See README for details. - Added
BlacklistMixin.blacklistmethod to make it easier to blacklist tokens regardless of whether or not they are present in the outstanding token list. - In token blacklist app, changed
OutstandingToken.jtifield to char field to better reflect JWT spec. - Renamed
AUTH_TOKEN_CLASSsetting toAUTH_TOKEN_CLASSES. This setting now specifies a list of token classes (or class paths) which are used to verify tokens which are submitted for authorization. This will hopefully help anyone wishing to gradually migrate between using different token types. - Removed support for extensible JWT backends. We're just going to use PyJWT exclusively to simplify things.
- Added support for more crypto algorithms. All HMAC and RSA variants from PyJWT now supported.
- Renamed
SECRET_KEYsetting toSIGNING_KEY. - The renamed
SIGNING_KEYsetting now acts doubly as a symmetric signing/verification key for HMAC algorithms and as a private key for RSA algorithms. - Added
VERIFYING_KEYsetting for use with RSA algorithms. - Removed undocumented
TOKEN_BACKEND_CLASSsetting.
- Switched to using PyJWT as the underlying library for signing and verifying tokens.