3

我想在我的web應用程序的登錄頁面的同一窗口中執行Facebook身份驗證。 當用戶點擊登錄按鈕進入認證頁面時,我正在使用以下代碼。Facebook同一窗口身份驗證

function loginUsingOAUTH() 
{ 
    top.location = 'https://graph.facebook.com/oauth/authorize?client_id=839846246064537&scope=email&redirect_uri=http://www.olcayertas.com/testqa/result.html'; 
} 

1)認證後,Facebook將我重定向到我的重定向url並返回一個參數「代碼」。 在這一點上,我想訪問Facebook的用戶信息,但我不知道如何做到這一點。 這是什麼「代碼」參數?

2)有沒有其他方法可以訪問用戶信息?

3)你有任何其他建議facebook身份驗證與相同的窗口登錄?

預先感謝您的幫助

回答

0

當你得到你應該做服務器端請求獲得一個訪問令牌,比通過訪問令牌的用戶代碼。它在Facebook開發網頁解釋說:

交換代碼的訪問令牌

爲了獲得訪問令牌,使一個HTTP GET請求到以下 的OAuth端點:

GET https://graph.facebook.com/v2.3/oauth/access_token? 
    client_id={app-id} 
    &redirect_uri={redirect-uri} 
    &client_secret={app-secret} 
    &code={code-parameter} 

該端點具有一些必需參數:

client_id. Your app's IDs 
redirect_uri. This argument is required and must be the same as the original request_uri that you used when starting the OAuth login 

過程。 client_secret。您的獨特應用程序祕訣,顯示在應用程序儀表板上。此應用程序祕密不應包含在客戶端代碼或 可被反編譯的二進制文件中。 保持完全祕密是非常重要的,因爲它是您的應用和所有使用它的人的安全核心。代碼爲 。從上面的登錄對話框接收到的參數重定向。

響應

您將收到來自該終端將在 JSON格式返回,如果成功的響應,是

{「access_token」: <access-token>, 「token_type」:<type>, 「expires_in」:<seconds-til-expiration>} 

如果不成功,您會收到一封解釋性錯誤 消息。