1

例如,在 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/

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

4

1 回答 1

3

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

    $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']发送和接收的返回是否相同。

于 2012-11-14T09:51:29.390 回答