2017-06-03 82 views
1

我正在開發Spring Boot的REST API。我已經實現了OAuth2授權服務器,所以我能叫我休息API來獲取令牌:Spring引導OAuth2 +移動客戶端(密碼和FB登錄)

localhost:8080/oauth/token -d "grant_type=password&scope=write&username=myuser&password=mypassword" -u myclient:mysecret 

現在我想實現「註冊了FB」的功能,所以我想下面的流程:

  1. 用戶單擊「用FB註冊」按鈕。
  2. 移動應用程序的應用發出FB打個電話,從FB獲得訪問令牌
  3. 移動應用程序發送此訪問令牌後端
  4. 後端創建一個新的用戶實體,並刷新發送回一個新的訪問令牌(共同令牌)由授權服務器發出。

但我不知道如何實現步驟4.我試圖找到一個互聯網上的例子,但沒有任何運氣。有誰知道如何實現它?

這裏是我的OAuth2實現:https://gist.github.com/osgafarov/8530464d25895512862a3d1f6013170e

非常感謝!

回答

0

我知道您需要使用fb註冊。但是使用證書流程並不能暗示,而是您可以使用隱式流程。

  1. 當用戶使用FB Button移動應用程序點擊註冊時應打開嵌入式瀏覽器(SFSafariViewController)並打開授權端點。
    1. 當用戶點擊贊同或好的瀏覽器重定向返回(隱式流)並關閉瀏覽器視圖。在這裏你將獲得URI中的accesstoken。
    2. 將AccessToken發佈到您的後端,並從該accesstoken獲取來自Facebook的用戶信息。
    3. 然後將該數據插入到UrDB(在後端)並將響應返回給客戶端應用程序。 https://5ecfdd32d0a3264463ba-8110a1171af36b468f9bd61da395ee26.ssl.cf2.rackcdn.com/blog/Screen%20Shot%202015-06-22%20at%206.42.07%20PM.png
+0

謝謝您的回答,但它並沒有真正回答我的問題有關步驟4.你有任何的代碼示例採取在如何能與Spring啓動實施的戰利品? – fiks

+0

意味着一旦你獲得了訪問令牌給你的客戶端,發送給你的服務器端,然後在你的服務器端代碼中獲取該令牌並使用userinfo終點(fb)獲取令牌的用戶詳細信息,然後插入該用戶在你的數據庫的細節,然後做你的業務邏輯,然後返回到客戶端的JSON響應。 您可以使用庫http://restfb.com/來讓您的工作更輕鬆。 請在這裏找到示例 http://codifyit.blogspot.in/2010/12/integrate-your-web-site-with-facebook.html –