繁体   English   中英

django:Facebook注册API的rest-auth和allauth需要CSRF令牌

[英]django: rest-auth and allauth for Facebook registration API requires CSRF token

使用allauthdjango-rest-auth创建一个Facebook登录api。 我已经阅读了这两个软件包的文档,并使用了rest-auth doc中的示例。 我已经完成了所有步骤,并且可以从可浏览DRF的API视图中成功使用此API,并且它已成功执行了注册。 当我从邮递员等其他地方尝试此API时,它会要求提供CSRF令牌。
我尝试使用csrf_exempt装饰器,但这似乎对该URL无效。

这是我的网址配置:

url(r'^rest-auth/facebook/$', csrf_exempt(FacebookLogin.as_view()), name='fb_login'),

其余内容与django-rest-auth文档中提到的内容相同。

我无法弄清楚我缺少什么,或者应该在哪里寻找解决方法。 任何帮助诊断问题的帮助将不胜感激。

TL; DR在您的FacebookLogin视图中设置authentication_classes = ()

登录和注册视图应该没有身份验证检查。 我假设您已按顺序将DRF DEFAULT_AUTHENTICATION_CLASSES设置为令牌认证和会话认证。 因此,当您的请求正在处理时,服务器找不到身份验证令牌,因此作为回退,它尝试进行会话身份验证,这需要CSRF,这反过来会导致CSRF失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM