【发布时间】: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