簡體   English   中英

使用Facebook的Access_token進行Rails身份驗證

[英]Rails Authentication with Access_token from Facebook

我目前正在構建一個帶有rails后端的iPhone應用程序。 我在iphone上使用facebook的單點登錄(SSO),並且在客戶端上的身份驗證效果非常好。 我在rails上使用devise作為后端。

注意我已經在iOS應用程序中咨詢過Facebook身份驗證,該應用程序也已經訪問了安全的Web服務

我看到設計有一個叫做token_authenticable的東西,它本質上是該線程的第5步中描述的“票證”。 這是我看到的當前流程

  1. 用戶登錄到手機上的Facebook SSO
  2. 用{access_token:X}調用myserver.com/sessions/fb_sso
  3. 在服務器端(在SessionsController#fb_sso,我將使用access_token對facebook進行API調用
  4. 如果access_token有效,請檢查db中是否存在用戶。 如果用戶不存在,請創建新用戶
  5. 現在我們可以將{user_id:X,devise_auth_token:Y}返回給1)

這很簡單。 但是,我有幾個問題:

  1. 使用devise_auth_token,這是否意味着我不再需要從設計中調用sign_in(“user”,resource)? (見http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/
  2. 將代碼放在3-4的最佳位置在哪里?
  3. 我似乎無法在Google上找到關於此主題的內容。 為什么有一個如此常見的過程那么少的教程? 我錯過了一些明顯的東西嗎?

為什么你不能使用omniauth-facebook gem。 它是一個非常簡單的解決方案來獲取訪問令牌,如果你使用設計它的潛力將加倍。 確保您需要在不同的登錄時間獲取不同的訪問令牌。

您可以瀏覽此鏈接 https://github.com/pramodv-nyros/social-login-in-rails

您必須在服務器和ios客戶端上使用相同的令牌。 一個簡單的解決方案是通過設備+ omniauth將所有邏輯放在服務器端,iOS僅處理來自服務器端的UI和響應。 如果你想從iOS獲取令牌,比如使用facebook iOS SDK,你應該將令牌告訴服務器端,但看起來不安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM