14

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 设置中设置为“非空白”。没运气

那么,如何摆脱散列呢?

非常感谢!

4

3 回答 3

17

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

<script type="text/javascript">
   if (window.location.hash == '#_=_') {
      window.location.hash = '';
   }
</script>
于 2012-06-24T06:16:32.547 回答
7

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

Facebook 为处理不需要的 uri 片段提供了以下建议,“如果担心生成的 URL 的美学或客户端行为,则可以使用 window.location.hash(甚至是服务器端您自己的重定向)以删除有问题的字符。”

上面提供的 javascript 似乎是一个有效的解决方案,即使它有点 hacky。

于 2014-01-20T00:26:38.433 回答
0
<script type="text/javascript">
    if (window.location.href.indexOf('#') > -1) {
        window.location.href = '/';
    }
</script>
于 2017-01-12T14:05:25.953 回答