我正在用Web客戶端和iPhone客戶端構建一個應用程序。OAuth flow,iPhone - > Rails - > Facebook
在Web客戶端我通過Facebook與Omniauth驗證用戶身份,然後用戶可以張貼在應用Facebook的行動。這很好。
我遇到一些問題,實現從iPhone應用程序的驗證流程。
我已經在Rails應用中設置了Gatekeeper作爲OAuth提供者。雖然我不確定應該如何實施身份驗證流程。
我想出這個: 用戶可以登錄到Facebook在iPhone,並獲得令牌。然後想法是將令牌和Facebook uid一起發送到rails應用程序,存儲它,並使用Omniauth驗證用戶身份。用戶通過身份驗證後,使用門衛生成令牌並將其發送回iPhone應用。
如果是第一次用戶驗證對Rails應用程序,一個新的用戶將被創建。
然後,用戶可以做到對一個JSON-API和Rails應用程序將負責Facebook的整合,因爲Facebook的令牌的動作被存儲在用戶的記錄。
的應用也將跨越多個域,所以我需要有註冊,以提供不同的回調URI的多個看門的應用。
這似乎是一個可行的解決方案嗎? 安全嗎? 是否有替代流程/方法?
謝謝。
我正在考慮相同的架構,我認爲這是合法的。在您的描述中,您錯過了「rails對Facebook的身份驗證FB UID +訪問令牌」,以確保您沒有被欺騙。 – Hollownest 2012-05-09 12:28:49
這被稱爲「斷言」,看起來正是你所描述的。從https://github.com/songkick/oauth2-provider:「OAuth客戶端將使用其他框架對用戶進行身份驗證並獲取令牌,然後將此令牌交換爲您域中的訪問令牌。」 – Hollownest 2012-05-09 12:37:45
您是否最終使用oauth2-provider? – 2012-11-02 21:46:56