2014-10-20 89 views
0

對於從我們的android應用和iOS應用註冊的用戶,我們需要從應用生成短期訪問令牌,並且需要讓服務器生成長期存在的令牌。 參考https://developers.facebook.com/docs/facebook-login/access-tokens#extending,我們看到以下內容 -facebook獲取短期訪問令牌android應用並傳遞給服務器

從您的服務器而不是客戶端進行此調用。應用程序祕密包含在此API調用中,因此您絕不應該實際發出請求客戶端。而是實現發出請求的服務器端代碼,然後將包含長時間令牌的響應傳遞迴客戶端代碼。這將是與原始令牌不同的字符串,因此如果您要存儲這些令牌,請替換原來的令牌。

一旦您檢索到長壽命令牌,您可以在服務器上使用它,或者將其傳回客戶端以在此處使用。

當我們有一個android應用程序和服務器,而不是一個網頁作爲客戶端時,我們該如何實現?

facebook文檔提到,使用Facebook移動SDK的移動應用程序會獲得長壽命的令牌。我如何從android應用程序獲取短期訪問令牌?我們如何在facebook文檔中提到的移動應用程序中實現此實現 - Web客戶端進行身份驗證,通過服務器交換長期令牌的短期令牌,將令牌發送回Web客戶端,然後發回Web客戶端,用長期令牌撥打電話。他們也在文檔中提到了從服務器進行此調用,而不是客戶端 - GET/oauth/access_token?
grant_type = fb_exchange_token &
的client_id = {APP-ID} & client_secret = {應用祕密} & fb_exchange_token = {短暫的令牌}

回答

0

看一看Design for Facebook authentication in an iOS app that also accesses a secured web service

你只需要在接收訪問令牌的服務器上創建WebService,並採取相應的操作。

+0

在您分享的鏈接中,給出的解決方案是有一個單獨的Facebook登錄和一個單獨的登錄到Web應用程序。對於正常登錄,我們捕獲用戶名和密碼。如果有人使用facbook登錄我們的應用程序,我應該考慮什麼作爲密碼? – 2014-10-20 09:35:53

+0

只有步驟3和4對於您的用例很重要。我想你不想讓事情複雜化。只需在服務器上設置一個與HTTPS對話的服務,接收短暫的令牌,交換並將其保存到某個數據庫。 – Tobi 2014-10-20 09:41:33

+0

我編輯了我的問題並添加了更多詳細信息。服務器應該如何驗證令牌並認證用戶進行api調用?我們使用spring security來爲用戶驗證正常的用戶名和密碼。 – 2014-10-20 11:54:07

相關問題