未提供身份验证凭据django rest auth

未提供身份验证凭据django rest auth,django,django-rest-framework,django-rest-auth,Django,Django Rest Framework,Django Rest Auth,我有一个应用程序,我实现了django restframework和django reat auth以及jango framework jwt。我按照说明进行操作,在浏览器中一切正常。我现在决定在postman中测试连接,并尝试获取登录用户的详细信息,其端点是/rest auth/user,但我得到以下错误 { “详细信息”:“未提供身份验证凭据。” } 我决定复制返回的令牌,并将其作为 "Authorization": "Token ahagjbeghq7hbcvgqhvwqu08hevug.

我有一个应用程序,我实现了django restframework和django reat auth以及jango framework jwt。我按照说明进行操作,在浏览器中一切正常。我现在决定在postman中测试连接,并尝试获取登录用户的详细信息,其端点是
/rest auth/user
,但我得到以下错误

{
“详细信息”:“未提供身份验证凭据。”
}

我决定复制返回的令牌,并将其作为

"Authorization": "Token ahagjbeghq7hbcvgqhvwqu08hevug.jwhhwiiwhw",
"Content-Type": "application/json; charset=utf-8"
在使用返回的令牌修改标题后,我希望它显示用户的详细信息,但是我仍然得到了

{
    "detail": "Authentication credentials were not provided."
}
但是我可以通过restframewjwt提供的url验证令牌是否正确

/api-token-verify
,它将重新运行令牌值。这是我的django rest身份验证类

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.BasicAuthentication',

    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.AllowAny',
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',

    ),

}

您应该在JWT令牌的
Authorization
标题中使用
JWT
而不是
Token

"Authorization: JWT <your_token>"
“授权:JWT”

正如@neverwalkoner已经提到的
JWT
关键字假设是Postman标题部分中的授权值

此外,如果您不想在令牌中使用JWT作为关键字,您可以通过设置对其进行自定义:使用以下键:
JWT\u AUTH\u HEADER\u PREFIX

JWT_AUTH = {
    'JWT_ENCODE_HANDLER':
    'rest_framework_jwt.utils.jwt_encode_handler',

    'JWT_DECODE_HANDLER':
    'rest_framework_jwt.utils.jwt_decode_handler',

    'JWT_PAYLOAD_HANDLER':
    'rest_framework_jwt.utils.jwt_payload_handler',

    'JWT_PAYLOAD_GET_USER_ID_HANDLER':
    'rest_framework_jwt.utils.jwt_get_user_id_from_payload_handler',

    'JWT_RESPONSE_PAYLOAD_HANDLER':
    'rest_framework_jwt.utils.jwt_response_payload_handler',

    'JWT_SECRET_KEY': settings.SECRET_KEY,
    'JWT_GET_USER_SECRET_KEY': None,
    'JWT_PUBLIC_KEY': None,
    'JWT_PRIVATE_KEY': None,
    'JWT_ALGORITHM': 'HS256',
    'JWT_VERIFY': True,
    'JWT_VERIFY_EXPIRATION': True,
    'JWT_LEEWAY': 0,
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
    'JWT_AUDIENCE': None,
    'JWT_ISSUER': None,

    'JWT_ALLOW_REFRESH': True,
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),  
    'JWT_AUTH_HEADER_PREFIX': 'Bearer', #this most commonly accepted way
    'JWT_AUTH_COOKIE': None,

}

它要求我输入username@King我的意思是你应该做
“授权”:“JWT ahagjbeghq7hbcvgqhvwqu08hevug.jwhhwiiwhw”,