Facebook oauth 重定向在 iframe 中不起作用

标签 facebook iframe oauth

最近我注意到我在 Facebook 上的应用程序停止正常工作。

当有人打开未经授权的应用程序时,我会显示带有链接的简单内容, 单击链接时,在应用程序中我发出重定向(在 Spring 中我返回“redirect:...url..”)到 URL:

https://www.facebook.com/dialog/oauth?scope=email&client_id=317651918315301&redirect_uri=https%3A%2F%2Fapps.facebook.com%2Facnestop&scope=email&response_type=token

它将带有给定位置的 302 发送到 iFrame。

然后显示空白 iFrame,并返回来自 FB 的以下 header :

Cache-Control   private, no-cache, no-store, must-revalidate
Connection  keep-alive
Content-Encoding    gzip
Content-Type    text/html; charset=utf-8
Date    Fri, 25 May 2012 10:37:11 GMT
Expires Sat, 01 Jan 2000 00:00:00 GMT
P3P CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma  no-cache
Set-Cookie  _e_1vFX_0=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly locale=pl_PL; expires=Fri, 01-Jun-2012 10:37:11 GMT; path=/; domain=.facebook.com wd=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly
Transfer-Encoding   chunked
X-Content-Type-Options  nosniff
X-FB-Debug  VYI+cCm/Vfpx3US82n06uFuw5gF6UQDg+8GUSpGUL9A=
X-Frame-Options DENY
X-XSS-Protection    0
x-content-security-policy...    allow *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:*;options inline-script eval-script;report-uri https://www.facebook.com/csp.php

并且只显示空白 iFrame。

当我重定向到的 URL 直接粘贴到浏览器时 - 它会显示 Facebook 提示以授权应用程序。

当 iFrame 通过在浏览器中粘贴和打开相同链接进行重定向时,行为为何会有所不同,您有什么想法吗?

我今天注意到了这一点,以前的应用程序运行良好。

这是我的示例应用程序: https://apps.facebook.com/acnestop/

最佳答案

如果用户未授权您的应用程序,您无需处理该问题,Facebook 会负责处理。

但是处理用户尚未登录的情况可以使用 getLoginURL

$loginUrl = $facebook->getLoginUrl(
    array(
        'scope'         => 'email,user_checkins,etc',
        'redirect_uri'  => 'https://apps.facebook.com/my-application/' 
    )
);

Do not forget the trailing slash in redirect_uri

希望这有帮助

关于Facebook oauth 重定向在 iframe 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753123/

相关文章:

c# - .NET Facebook 游戏的推荐架构

php - 仅在 facebook 中显示 facebook 选项卡

Laravel 5 TokenMismatchException 仅在 iFrame 中

python - 关于 Github OAuth 身份验证

api - 如何在请求中使用从 Twitter OAuth 1.0a 获得的 "user context access token"?

facebook - 在没有 offline_access token 的情况下调用 facebook api

ios - 分享到 Messenger 的链接时缺少报价

javascript - 用 Javascript 替换 iframe 源 - 我可以使用循环吗?

javascript - 滚动条导致页面移动

oauth - Google OAuth2 用于托管在 NAT 后面的 Web 应用程序(没有公共(public) IP 的内网服务器)