在附加OAuth时强制Facebook向我显示登录表单

时间:2012-11-12 17:18:00

标签: facebook facebook-graph-api

在Twitter中,我可以像这样对他们的REST API进行HTTP调用:

https://twitter.com/oauth/authenticate?force_login=true&oauth_token= .....

即使用户已登录Twitter,也会强制用户登录。

Facebook有一种类似于JS SDK的机制,

https://developers.facebook.com/docs/howtos/login/client-side-re-auth/

但普通REST API中没有'& auth_type = reauthenticate'选项的痕迹:

http://developers.facebook.com/docs/reference/dialogs/oauth/

有人知道它是隐藏还是不存在?

1 个答案:

答案 0 :(得分:3)

您可以在服务器端身份验证中使用auth_type = reauthenticate,就像在JS中一样。

    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
   . $_SESSION['state'] . "&scope=user_birthday,read_stream&auth_type=reauthenticate&auth_nonce="
   . $_SESSION['nonce'];

了解更多:

https://developers.facebook.com/docs/howtos/login/server-side-re-auth/

它为您提供了一个非常好的文档,说明如何使用它,以及必要的代码。您还可以检查$_SESSION['nonce']发送和接收的内容是否相同。