【发布时间】:2019-10-01 06:08:24
【问题描述】:
天哪!
应用部门:
djangorestframework-simplejwt==4.3.0,
djangorestframework==3.10.3
我正在尝试使用JWTTokenUserAuthentication 验证User,而不使用共享SECRET_KEY 的数据库。
在我的设置中:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTTokenUserAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
}
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': datetime.timedelta(minutes=120),
'REFRESH_TOKEN_LIFETIME': datetime.timedelta(hours=12),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': True,
'ALGORITHM': 'HS256',
'SIGNING_KEY': SECRET_KEY,
'VERIFYING_KEY': SECRET_KEY,
'AUTH_HEADER_TYPES': ('Bearer',),
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
'TOKEN_TYPE_CLAIM': 'token_type',
'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
'SLIDING_TOKEN_LIFETIME': datetime.timedelta(minutes=5),
'SLIDING_TOKEN_REFRESH_LIFETIME': datetime.timedelta(days=1),
}
对于我使用rest_framework_simplejwt.views.TokenObtainPairView 的视图。
在我的应用程序的网址中:
urlpatterns = [
path('test-token/', TokenObtainPairView.as_view(),
name='token_obtain_pair')
]
所以,我正在发出发布请求,并为其提供不记名令牌和凭据,如 username 和 password。但我收到消息:
{
"detail": "No active account found with the given credentials"
}
我应该怎么做才能正确认证?
【问题讨论】:
标签: python django django-rest-framework django-rest-framework-simplejwt