【问题标题】:DRF token authenticationDRF 令牌认证
【发布时间】:2022-11-04 20:33:48
【问题描述】:

对于一个 drf 项目,我同时使用会话和令牌身份验证。

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
}

那么这里是否可以在没有 csrf 令牌的情况下进行 api 调用,因为我只尝试了加热器“授权:令牌”,它返回“CSRF 失败:CSRF 令牌丢失”。

问题是我想要会话身份验证以在 drf 和令牌身份验证中使用可浏览 api 进行编程调用 .. 我希望这很清楚..

【问题讨论】:

  • 两个问题:你的DEBUG 设置是什么?你在使用 SSL 吗?当DEBUG = False 并且协议不安全时,DRF/Django 将强制要求 CSRF。但是,如果您使用的是加密连接(或由DEBUG 表示的开发实例),则令牌应该就足够了。
  • 调试是真的。我没有使用 ssl。
  • 使用 @csrf_exempt 装饰器忽略 csrf 错误。

标签: django-rest-framework django-authentication django-csrf django-permissions


【解决方案1】:

您需要使用自定义身份验证。 对可浏览的 API 使用 cookie 身份验证,对编程请求使用令牌身份验证。

【讨论】:

    猜你喜欢
    • 2017-10-29
    • 2015-12-07
    • 2017-06-29
    • 2020-04-10
    • 2021-08-28
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多