【问题标题】:Facebook Oauth authorize redirect fails in Internet Explorer for extended permissionsFacebook Oauth 授权重定向在 Internet Explorer 中因扩展权限而失败
【发布时间】:2010-08-18 19:28:07
【问题描述】:

我正在使用带有网络身份验证和扩展权限的 facebook oauth

我得到的授权 URL 最终是这样的

https://graph.facebook.com/oauth/authorize?client_id={myAppId}&redirect_uri={my_redirect_uri}&scope=offline_access,read_stream,friends_activities,user_activities,user_photos,friends_photos,user_location,user_about_me,user_activities

这在 Mozilla 和 Chrome 中运行良好,但 IE 无法显示网页。

但是,如果我将扩展权限的数量减少到仅 offline_access、read_stream、friends_activities、user_activities 它在 IE 中也可以正常工作。

如果我在范围参数中拥有超过 6 个权限,我看到 facebook 出于某种原因将上述请求重定向到 login.php 页面它不会在 IE 中重定向

有人看到这个问题吗?

【问题讨论】:

    标签: facebook oauth authorization


    【解决方案1】:

    我想我正在经历同样的事情!

    有人知道怎么解决吗?

    我的代码似乎可以在 Firefox、Chrome 和 Safari 中运行,但不能在 IE 中运行(在 IE9 beta 中测试,不确定其他 IE 版本)。

    也许这个权限列表太长了:

    {perms:'email,user_birthday,user_education_history,user_work_history,friends_education_history,publish_stream'}
    

    我们能做什么?

    更新:我可能找到了解决方法。 IE 似乎不允许 Facebook 从主页登录。无论出于何种原因,IE8 在从 root 以外的页面登录时都能正常工作。我还没有测试过其他版本的 IE。我添加了一些 javascript/jquery 来检查使用 IE 的访问者并将这些人反弹到与根页面相同的单独登录页面。它似乎有效。测试时,请务必清除浏览器历史记录/cookies,然后关闭并重新启动浏览器。

    var ieLogonPage='/logon/' ;
    if(($.browser.msie)&&(window.location.pathname=='/')) window.location=ieLogonPage;//IE doesn't seem to let Facebook logon from the main page. 
    

    我不知道为什么这似乎有效。

    【讨论】:

    • 在重定向期间检查 url 的长度。 IE 的 URL 限制为 2K 个字符。 Facebook 正在重定向请求并添加到 url,因此根据 perminssions 的数量,url 的长度会有所不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多