Facebook登录链接直接重定向回我的应用程序,而不显示登录对话框

时间:2015-01-21 13:58:51

标签: facebook redirect oauth

我正在尝试使用HTTP重定向为Web应用程序实现简单的Facebook登录流程,详见https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2

为了使此问题具有通用性,我们假设应用程序URL为www.example.com/app.php。在应用程序页面上,有一个链接可以将用户引导到Facebook的OAuth端点,理想情况下:

  • 他们登录Facebook(如果尚未登录)并批准我的应用程序访问其公开个人资料的权限
  • 然后将它们重定向回我的应用程序的URL以及附加的一些额外参数(例如,如果登录成功,则为www.example.com/app.php?code=...&access_token=...;如果登录/应用程序批准不成功,则为www.example.com/app.php?error_reason=...&error=...&error_description=... < / LI>

Facebook OAuth端点是:

www.facebook.com/dialog/oauth?client_id=12345&redirect_uri=www.xyz.com/app.php

我已将client_idredirect_uri参数分别填入我的应用程序ID和我的应用程序的URL。

每当我访问该链接时,实际发生的是它会立即重定向回我的应用程序的主页 - 而不会显示任何类型的登录对话框。这种情况发生在Firefox和Chrome上 - 无论是在我登录Facebook时还是在我没有,在正常会话和未启用插件的隐身会话中。从浏览器检查器中,我可以看到Facebook OAuth页面肯定是请求的,但是立即302重定向到我的应用程序页面,只附加了code参数。

www.example.com/app.php?code=...

当从我的应用程序的URL以外的页面访问Facebook OAuth链接时也会发生这种情况(例如,如果我点击www.example.com/other_page.htm中的链接)。

我不确定我在这里做错了什么;应用程序网址(www.example.com/app.php)已在我的应用信息中心的许多位置获得批准,并且将request_uri参数更改为任何其他网址会导致出现错误页面。在将urlencode()参数传递给我之前,我还尝试request_uri我的应用程序URL,但结果保持不变。我不知道下一步该尝试什么,据我所知,我已尽可能地遵循Facebook的手动登录指南。

0 个答案:

没有答案