如何摆脱#
当使用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 not to set the user's email address in django social