[英]django: rest-auth and allauth for Facebook registration API requires CSRF token
使用allauth
和django-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.