Issue
I am trying to deploy a django app on GCP but when i try to make migrations it gives me this error:
ImportError: Could not import 'rest_framework_simplejwt.authentication.JWTAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ModuleNotFoundError: No module named 'rest_framework_simplejwt'.
Settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated'
],
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
]
}
SIMPLE_JWT = {
'ALGORITHM': 'HS256',
'SIGNING_KEY': SECRET_KEY,
'VERIFYING_KEY': None,
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=800),
'REFRESH_TOKEN_LIFETIME': timedelta(days=2),
}
OAUTH2_PROVIDER = {
'ACCESS_TOKEN_EXPIRE_SECONDS': 60 * 15,
'OAUTH_SINGLE_ACCESS_TOKEN': True,
'OAUTH_DELETE_EXPIRED': True
}
requirements.txt
django-cors-headers
pyjwt
djangorestframework
djangorestframework-jwt==1.11.0
What is it that I am missing ?
UPDATE I installed rest_framework_simplejwt and now the error shifted to :
No module named 'rest_framework_simplejwt.tokens'
Solution
It seems you are confusing two packages. djangorestframework-jwt
which you have in your requirements.txt is no longer maintained. It provides the rest_framework_jwt.authentication.JSONWebTokenAuthentication
authentication class.
However, the one you are actually using, rest_framework_simplejwt.authentication.JWTAuthentication
, comes from the pip package djangorestframework-simplejwt
So you need to update your requirements.txt. Remove djangorestframework-jwt
and add djangorestframework-simplejwt
Answered By - Bary12
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.