boo*_*dev 34 facebook facebook-oauth facebook-php-sdk
还有其他人看到过这种情况吗?
我正在使用Facebook PHP SDK和一些Javascript构建一个Facebook画布应用程序.
现在当我带领用户完成OAuth身份验证流程时,我注意到浏览器中的URL会自动附加到此"#_=_"
,因此我的URL开始如下所示:
http://apps.facebook.com/xxxxxxxxxxxx/#_=_
Run Code Online (Sandbox Code Playgroud)
当我重定向到应用程序配置文件页面时,URL是这样的:
http://www.facebook.com/apps/application.php?id=xxxxxxxxxxxx#_=_
Run Code Online (Sandbox Code Playgroud)
我正在重定向使用
echo "<script type='text/javascript'>top.location.href='$appcanvasurl';</script>"
Run Code Online (Sandbox Code Playgroud)
到画布URL,和
echo "<script type='text/javascript'>top.location.href='$appprofurl';</script>"
Run Code Online (Sandbox Code Playgroud)
对于应用资料页面.
那为什么会#_=_
附加?
更新:
根据跟踪器上的这个错误,这是设计的,并给出一个值redirect_uri
不会改变这一点.
并根据该页面上的官方Facebook回复(必须登录Facebook查看帖子):
这被标记为"按设计",因为它可以防止潜在的安全漏洞.
某些浏览器会将URL中的哈希片段附加到已重定向到的新URL的末尾(如果新URL本身没有哈希片段).
例如,如果example1.com返回到example2.com的重定向,那么访问example1.com#abc的浏览器将转到example2.com#abc,而example1.com上的散列片段内容可以访问example2上的脚本.COM.
由于可以将一个auth流重定向到另一个,因此可以从一个应用程序访问另一个应用程序的敏感身份验证数据.
通过将新的哈希片段附加到重定向URL来缓解此问题,以防止此浏览器行为.
如果关注结果URL的美学或客户端行为,则可以使用window.location.hash(甚至是您自己的服务器端重定向)来删除有问题的字符.
mjs*_*mjs 17
请参阅:https: //developers.facebook.com/blog/post/552/
会话重定向行为的更改
本周,
#_=_
当此字段留空时,我们开始向redirect_uri 添加片段.请确保您的应用可以处理此行为.
归档时间: |
|
查看次数: |
22247 次 |
最近记录: |