我obtain.auth_token
从网址调用如下
url(r'^api-token/','rest_framework.authtoken.views.obtain_auth_token')
我回来
{
detail: "CSRF Failed: CSRF token missing or incorrect."
}
我想知道为什么会发生这种情况,因为我的印象是 django-rest-framework 通常是 CSRF 豁免的
谢谢
我obtain.auth_token
从网址调用如下
url(r'^api-token/','rest_framework.authtoken.views.obtain_auth_token')
我回来
{
detail: "CSRF Failed: CSRF token missing or incorrect."
}
我想知道为什么会发生这种情况,因为我的印象是 django-rest-framework 通常是 CSRF 豁免的
谢谢
我有完全相同的问题。检查您是否已退出浏览器。
该视图使用 POST。DRF 总是要求 CSRF 用于会话认证的 POST。
出于这个原因,获取身份验证令牌等敏感请求应使用 POST。
我也遇到了这个。添加一个答案,以防其他人不清楚。
api-token
正确使用了端点。我最初尝试使用基本身份验证,假设这个生成令牌的视图受到保护,但 DRF 实际上期望包含和字段的表单数据。username
password
这是一个使用requests的工作示例:
r = requests.post('http://example.com/api-token/'), data={
'username': username,
'password': password,
})
token = r.json()['token']
为了使用文档 http://www.django-rest-framework.org/topics/ajax-csrf-cors/ 你必须实现 ajax-csrf 如何在 https://docs.djangoproject.com/en/中解释开发/参考/csrf/#ajax
...如果您使用的是 angularjs,您可以检查它Django csrf token + Angularjs