Henlo!
应用程序部门:
djangorestframework-simplejwt==4.3.0
,djangorestframework==3.10.3
我正在尝试使用User
对JWTTokenUserAuthentication
进行身份验证,而不使用共享SECRET_KEY
来使用DB。
在我的设置中,我有:
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"
}
我应该怎么做才能正确验证?
我可以指导整个过程,但那样一来,您将不会学到任何值得的东西。我也是一位苦苦挣扎的新手和资深VB.net/Visual Basic开发人员,但我是pois3d来学习诸如django之类的新事物。。。
您的解决方案@catscoolzhyk是什么,我也在尝试实现Azure身份验证的这种方法。