Release Notes¶
Version 1.2.3¶
Released: January 25, 2026
Behavior and functionality¶
Projects generated via
jwt-allauth startprojectnow configure Django’sMIGRATION_MODULESso thatjwt_allauthmigrations are stored inside the project codebase (under<project_module>/migrations_external/jwt_allauth). This improves reliability in Docker/containerized deployments wheresite-packagesis ephemeral.
Documentation¶
Updated installation documentation to explain how to configure
MIGRATION_MODULESmanually in existing projects to persistjwt_allauthmigrations in version control.
Version 1.2.2¶
Released: December 24, 2025
Behavior and functionality¶
Admin-Managed Registration: The email confirmation link in the admin-managed registration flow is no longer single-use. It remains valid until the user successfully sets their password. This prevents issues with email security scanners (like Outlook Safe Links) consuming the token before the user can access it. The token is now automatically deleted upon successful password completion.
Configurable Verification Error Page: When an invalid or expired email verification link is accessed in the admin-managed flow, a user-friendly HTML error page is now shown instead of a 400/401 API error. This template can be customized via the EMAIL_VERIFICATION_FAILED_TEMPLATE key in JWT_ALLAUTH_TEMPLATES setting.
Version 1.2.1¶
Released: November 29, 2025
Bug Fixes¶
Minor fix: resolved MFA TOTP failures in production deployments with multiple workers or threads by removing dependency on default cache backend.
Behavior and functionality¶
MFA TOTP challenges and setup secrets are now stored server-side in the existing
GenericTokenModeldatabase table instead of Django’s default cache backend. This improves reliability in multi-worker environments without changing the public API or required settings.
Other Changes¶
Updated supported Python versions to 3.10+ (dropped 3.8 and 3.9).
Extended the
mfaextra to includefido2<2.0.0for broader hardware key support.Fixed Quick Start documentation and CI smoke test to run
python manage.py makemigrations jwt_allauthbeforemigratein projects generated viajwt-allauth startproject, avoiding migration errors involving theJAUsermodel.
Version 1.2.0¶
Released: November 17, 2025
New Features¶
- MFA TOTP: Added REST endpoints for TOTP-based multi-factor authentication using
django-allauthMFA: POST /mfa/setup/: returns provisioning URI (otpauth), secret, and QR code (SVG)POST /mfa/activate/: activates TOTP and returns recovery codesPOST /mfa/verify/: completes login when MFA is requiredPOST /mfa/verify-recovery/: completes login using one-time recovery codesPOST /mfa/deactivate/: disables TOTP for the current userGET /mfa/authenticators/: lists user authenticators
Requires enabling
allauth.mfain your projectINSTALLED_APPSand running migrations. Configurable viaJWT_ALLAUTH_MFA_TOTP_MODEsetting with three modes:'disabled'(default): MFA TOTP is disabled'optional': Users can enable MFA TOTP but it’s not required for login'required': Users must enable MFA TOTP and provide TOTP code during login
- MFA TOTP: Added REST endpoints for TOTP-based multi-factor authentication using
- Admin-Managed User Registration: New registration flow controlled via
JWT_ALLAUTH_ADMIN_MANAGED_REGISTRATIONsetting. When enabled: Self-registration endpoint is disabled
Only users with allowed roles (configurable via
JWT_ALLAUTH_REGISTRATION_ALLOWED_ROLES) can register new usersNew
/user-register/endpoint for admin registrationInvited users set their own password via email verification link before gaining access
No authentication tokens issued during registration; one-time password setup token issued after email verification
- Admin-Managed User Registration: New registration flow controlled via
Version 1.1.1¶
Released: October 11, 2025
Breaking Change¶
JWT_ALLAUTH_USER_ATTRIBUTESnow expects a dictionary mapping output claim names to user attribute paths (e.g.,{"organization_id": "organization.id"}) instead of a list of paths. This change prevents duplicate final attribute names (e.g., multipleidkeys) in JWT payloads. The previous list format is still accepted for backward compatibility, but it is deprecated and may be removed in a future release.
Version 1.1.0¶
Released: October 7, 2025
New Features¶
Added support for including additional user attributes in refresh tokens via the
JWT_ALLAUTH_USER_ATTRIBUTESsetting, allowing flexible configuration of user data included in JWT payloads while maintaining the existing role assignment logic.
Bug Fixes¶
Fixed API endpoints that incorrectly required refresh token in request payload when
JWT_ALLAUTH_REFRESH_TOKEN_AS_COOKIEwas enabled, now properly extracting refresh tokens from cookies when configured.Fixed a bug that caused migrations not to run correctly in some situations.
Version 1.0.3¶
Released: August 5, 2025
New Features¶
New
load_user()decorator that loads the complete user object from the database for stateless JWT authentication.Added
JWT_ALLAUTH_COLLECT_USER_AGENTsetting to control user agent data collection during token refresh.Added support for refresh tokens via HTTP cookies with the new
JWT_ALLAUTH_REFRESH_TOKEN_AS_COOKIEsetting.Enhanced token refresh security by moving user agent data collection from request payload to server-side context.
Compatibility with
django-allauth65.10.0,djangorestframework-simplejwt5.5.1, anddjangorestframework3.16.0.
Bug Fixes¶
Improved security for token refresh operations
Fixed a bug that caused migrations not to run correctly in some situations.
Version 1.0.2¶
Released: April 16, 2025
This release introduces significant improvements to the role management system and authentication configuration.
New Features¶
Added automatic role assignment in
UserManager:create_superusernow automatically sets the role toSTAFF_CODEcreate_userautomatically assigns roles based on user flags:STAFF_CODEfor staff usersSUPER_USER_CODEfor superusers
Added database constraints to ensure role consistency:
Staff users must have
STAFF_CODEroleSuperusers must have
SUPER_USER_CODErole
Minor Bug Fixes¶
Automatic configuration of
DEFAULT_AUTHENTICATION_CLASSESwas not working when using addiotionalREST_FRAMEWORKsettings.