我目前正在使用rails後端構建iPhone應用程序。我在iPhone上使用了Facebook的單點登錄(SSO),並且驗證在客戶端非常好。我在rails上使用devise作爲後端。來自Facebook的使用Access_token的Rails身份驗證
注意我已經諮詢Design for Facebook authentication in an iOS app that also accesses a secured web service已經
我看能想出有一些所謂的token_authenticable基本上是在該線程的步驟5所述的「入場券」。這是當前流動我看到
- 用戶登錄Facebook的SSO在手機上
- 用戶打電話一起myserver.com/sessions/fb_sso {的access_token:X}
- 在服務器端(在SessionsController#fb_sso,我將作出API調用與的access_token給Facebook
- 如果的access_token是有效的,檢查用戶是否在數據庫中存在。如果用戶不存在,創建一個新用戶
- 現在我們可以返回{ user_id:X,devise_auth_token:Y}回到呼叫1)
這很簡單。然而,我有幾個問題:
- 使用devise_auth_token,這是否意味着我不再需要從設計中調用sign_in(「user」,resource)? (在這裏找到http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/)
- 哪裏會把代碼放在3-4的最佳位置?
- 我似乎無法在Google上找到關於此主題的很多內容。爲什麼在那裏有那麼幾個教程,這個過程非常普遍?我錯過了明顯的東西嗎?
您使用的是Omniauth寶石爲Facebook連接?結合設計和omniauth照顧3和4給你! – MBHNYC
@MBHNYC:糾正我,如果我錯了,但這只是當用戶通過網站登錄的情況下。在OP的情況下,用戶通過iPhone應用程序登錄。該網站沒有看到流量。 –
是的,但是你仍然將相同的信息傳遞給Facebook,並且可以修改回調以不呈現任何視圖(或任何iOS應用需求),如果生成/覆蓋所有設備+ omniauth控制器/視圖, OP應該有所有的編程工具來滿足這個要求。 – MBHNYC