如何摆脱django-social-auth的facebook重定向中的#_ = _?

wzr*_*337 13 django facebook django-socialauth

django-social-auth /mypage#_=_在使用Facebook后端时重定向我.

当我在前端使用jquery mobile时,我无法接受.

我在facebook开发者网站上找到了:https://developers.facebook.com/blog/post/552/.

会话重定向行为的更改

本周,当此字段留空时,我们开始向redirect_uri添加片段#_ = _.请确保您的应用可以处理此行为.

因此,我尝试SOCIAL_AUTH_LOGIN_REDIRECT_URL将django-social-auth设置中的内容设置为"无空白".没运气

那么,如何摆脱哈希的事情呢?

非常感谢!

Sud*_*oti 15

好吧,这可能不是确切的解决方案,但是向您添加以下脚本将有助于解决问题:

<script type="text/javascript">
   if (window.location.hash == '#_=_') {
      window.location.hash = '';
   }
</script>
Run Code Online (Sandbox Code Playgroud)

  • 这并没有解决问题,它只是一个黑客. (5认同)

jug*_*ich 7

看起来Facebook总是附加'#_ = _',即使提供了redirect_uri.由于此行为与Facebook的博客文章相反,此功能已作为错误提交给Facebook .Facebook已经对此漏洞提供了官方回复,声称附加'#_ = _'是一种设计功能,可以防止潜在的安全漏洞.

Facebook为处理不需要的uri片段提供了以下建议:"如果产生的URL的美学或客户端行为受到关注,那么就可以使用window.location.hash(甚至是服务器端)重定向你自己的)以删除有问题的字符."

看来上面提供的javascript是一个有效的解决方案,即使它有点hacky.