gpt4 book ai didi

Django REST 框架 : using TokenAuthentication with browsable API

转载 作者:行者123 更新时间:2023-12-03 20:27:12 27 4
gpt4 key购买 nike

我正在按照 DRF 文档设置 TokenAuthentication,但无法使用可浏览的 API。我相信我已经在 settings.py 中添加了正确的行:

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),

INSTALLED_APPS = (
...
'rest_framework',
'rest_framework.authtoken',
...

以及使用文档中的代码片段为现有用户生成的 token 。如果我查询 authtoken_token,我可以看到每个用户的 token 表,所以我知道它们存在。

每次尝试登录可浏览 API 时,都会返回以下内容:
HTTP 401 Unauthorized
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
WWW-Authenticate: Token

{
"detail": "Authentication credentials were not provided."
}

所以它似乎是在尝试 Token 身份验证,但是这个消息有点奇怪。当我输入错误的密码时,我会在登录表单上收到“输入正确的密码”消息。当我输入正确的密码时,它似乎可以登录,但会带我到带有上述消息的 API 根目录,并在顶部菜单上显示“登录”,而不是用户名。

这可能与我的自定义用户模型有关吗?或者可能是因为我目前正在使用不支持 https 的开发服务器进行开发 - DRF 文档提到需要 HTTPS 和 TokenAuthentication,尽管我不确定这是最佳实践还是实际需要.

最佳答案

您不能将可浏览的 api 与 TokenAuthentication 一起使用.您必须添加 SessionAuthtication到您的设置( http://www.django-rest-framework.org/api-guide/authentication/#sessionauthentication ):

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),

关于Django REST 框架 : using TokenAuthentication with browsable API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35601130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com