django - 未提供身份验证凭据 django-rest-auth
问题描述
我有一个应用程序,我实现了 django restframework 和 django reat-auth 和 jango framework jwt。我按照说明进行操作,并且在浏览器中一切正常。我现在决定在邮递员中测试连接并尝试获取端点所在的登录用户详细信息,/rest-auth/user
但出现以下错误
{
"detail": "Authentication credentials were not provided."
}
我决定复制返回的 Token 并将其放在用户 url 的标题中
"Authorization": "Token ahagjbeghq7hbcvgqhvwqu08hevug.jwhhwiiwhw",
"Content-Type": "application/json; charset=utf-8"
用返回的令牌修改标题后,我希望它显示用户的详细信息,但我仍然得到
{
"detail": "Authentication credentials were not provided."
}
但是我可以通过restframework jwt提供的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
而不是Token
内部Authorization
标头来获取 jwt 令牌:
"Authorization: JWT <your_token>"
推荐阅读
- pandas - if 语句中的错误 ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- c - 在指针程序版本中从 C 中的文件读取和写入数组的问题
- python - 如何关闭硒消息python?
- java - 如何检查字符串的每个字符是否在白名单中?
- java - 在 Spring 中将 ReactJS 前端连接到 REST API
- reactjs - 人们如何更改 react.js 制作的网站的内容?
- jquery - 我可以修改存储在数组中的输入的属性吗?
- php - 我有一个关于 laravel 迁移的问题
- python - python 复杂对象创建
- python - 熊猫数据框中的条件和多个 goupby