【发布时间】:2016-06-06 16:22:51
【问题描述】:
我正在按照 DRF 文档设置 TokenAuthentication,但无法使其与可浏览 API 一起使用。我相信我在settings.py 中添加了正确的行:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
INSTALLED_APPS = (
...
'rest_framework',
'rest_framework.authtoken',
...
以及使用文档中的代码 sn-p 为现有用户生成的令牌。如果我查询 authtoken_token 表,我可以看到每个用户的令牌,所以我知道它们存在。
每次我尝试登录可浏览 API 时,都会返回以下内容:
HTTP 401 Unauthorized
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
WWW-Authenticate: Token
{
"detail": "Authentication credentials were not provided."
}
所以它似乎正在尝试令牌身份验证,但这条消息有点奇怪。当我输入错误的密码时,我会在登录表单上看到“输入正确的密码”消息。当我输入正确的密码时,它似乎可以登录,但将我带到带有上述消息的 API 根目录,并在顶部菜单上显示“登录”,而不是用户名。
这可能与我的自定义用户模型有关吗?或者可能是因为我目前正在使用不支持 https 的开发服务器进行开发 - DRF 文档提到需要带有 TokenAuthentication 的 HTTPS,尽管我不确定这是否是最佳实践或实际需要.
【问题讨论】:
标签: django django-rest-framework