JSON Web Tokens
The final improvement in security is to use JWT Authentication.
api.py
from ninja_extra import NinjaExtraAPI
from dj_ninja_auth.jwt.authentication import JWTAuth
from dj_ninja_auth.jwt.controller import NinjaAuthJWTController
api = NinjaExtraAPI(auth=[JWTAuth()])
api.register_controllers(NinjaAuthJWTController)
To prevent any future breaking changes, you are required to add the dj_ninja_auth.jwt
app to your INSTALLED_APPS
.
Change include the blacklisting of JWT tokens.
settings.py
INSTALLED_APPS = [
...
"ninja_extra",
"dj_ninja_auth",
"dj_ninja_auth.jwt
...
]
The JWT controller provides 2 additional endpoints for tokens.
/auth/refresh
: Issues the user a new token using the refresh token/auth/verify
: Verifies that the provided token is valid.