2012-11-12 59 views
1

安裝在Twitter的例子,當給我一個登錄表單我可以做一個HTTP調用他們的REST API是這樣的:力的Facebook通過OAuth

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/

但沒有了蹤影 '& AUTH_TYPE =重新驗證' 選項正常REST API中:

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

任何人都知道它是隱藏的還是不存在的?

+0

你的意思是在服務器端的流程? https://developers.facebook.com/docs/howtos/login/server-side-re-auth/ – CBroe

回答

2

您可以在服務器端身份驗證中使用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']是否發送,並收到回來是否相同。