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"
}
我该怎么做才能正确进行身份验证?
答案 0 :(得分:0)
我可以指导整个过程,但那样一来您将不会学到任何值得的东西。我还是一位苦苦挣扎的新手和资深VB.net/Visual Basic开发人员,但我是pois3d来学习django之类的新事物...伙计们,滚袖子