如何摆脱#

当使用Facebook后端时,django-social-auth将我重定向到/mypage#_=_

当我在前端使用jquery mobile时,我无法接受这一点。

我在facebook开发人员网站上找到:https://developers.facebook.com/blog/post/552/。

会话重定向行为的改变

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

所以我试着将django-social-auth设置中的SOCIAL_AUTH_LOGIN_REDIRECT_URL设置为'none blank'。 没有运气

那么,我该如何摆脱散列事情呢?

非常感谢!


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

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

即使提供了redirect_uri,Facebook看起来总是追加'#_ = _'。 由于此行为与Facebook的博客帖子相反,因此此功能已作为错误提交给Facebook。 Facebook已经提供了对这个bug的官方回应,声称追加'#_ = _'是一种防止潜在安全漏洞的设计特性。

Facebook为处理不需要的uri片段提供了以下建议,“如果结果URL的美学或客户端行为值得关注,可以使用window.location.hash(甚至服务器端您自己的重定向)删除违规字符。“

看起来,上面提供的JavaScript是一个有效的解决方案,即使它有点冒失。


<script type="text/javascript">
    if (window.location.href.indexOf('#') > -1) {
        window.location.href = '/';
    }
</script>
链接地址: http://www.djcxy.com/p/63285.html

上一篇: How to get rid of the #

下一篇: How not to set the user's email address in django social