Isa*_*dor 5 django django-rest-framework django-rest-auth
我正在使用Django Rest Framework和django-rest-auth。
我有标准的 API 端点(/login、/logout、/registration...)
使用我的浏览器,我可以登录/列出我的用户/注销。使用 Insomnia(API 请求者),我无法登录/注销,出现错误
“CSRF 失败:CSRF 令牌丢失或不正确”
也许我需要添加 CSRF 标头,但老实说我不知道在哪里可以找到这个 CSRF 令牌......也许我需要添加一些东西(@csrf_protect?)到登录端点,但我是否被迫完全重写默认视图?
bas*_*500 13
解决方案
您需要在 Insomnia ( https://support.insomnia.rest/article/49-cookies )的 Header 设置中设置 X-CSRFToken 。
X-CSRFTokencookie,点击Request => CookieRequest => Cookiecsrftoken到Cookie名称然后再试一次。
解释
CSRF Token 由 Django 在 cookie 中设置。这是在对服务器的第一个请求中完成的。然后将 cookie 的值作为 X-CSRF-Token 发送回标头中的服务器。
您可以在浏览器的调试器中查看正在发生的事情(Chrome 中的 F12)
| 归档时间: |
|
| 查看次数: |
5640 次 |
| 最近记录: |