我一直在研究同樣的事情幾天。
我相信omniauth-twitter
不適用於Twitter反向身份驗證。
我認爲解決的辦法是發送oauth_token
和oauth_token_secret
你從反向認證過程在iOS中的應用程序接收 ,到自定義端點。 請注意,我正在自己實施這個過程;它應該可以工作,但還沒有測試過。
在那裏您將使用twitter API來驗證憑據。這是從Rails應用程序的角度來看的實際身份驗證步驟。事情是這樣的(未測試的代碼):
consumer = OAuth::Consumer.new(TWITTER_APP_ID,
TWITTER_APP_SECRET,
{ site: 'https://api.twitter.com' })
access_token_token = ::OAuth::AccessToken.new(consumer,
params[:oauth_token],
params[:oauth_token_secret])
MultiJson.load(access_token.get('/1.1/account/verify_credentials.json?include_entities=false&skip_status=true')).body
(這是同樣的事情,該omniauth-twitter
寶石做它獲得訪問令牌後) 所以從現在開始,你將需要:
- 手柄來自上述請求的非200響應
- 從返回的散列中讀取用戶標識,使用現有的twitter用戶標識在數據庫中搜索現有用戶。如果存在,簽下他。如果沒有,創建一個新用戶,並簽署他在
這裏有更多的一些信息:。
是的後玩弄它,想着我還挺來到以避免嵌入二進制應用祕密在服務器上進行反向身份驗證的相同的結論的情況。 我也想直接調用omnitauth,Twitter的回調,但酵母是行不通的。我發現了一個omniauth提供商[omniauth,Twitter的訪問令牌(https://github.com/tdegrunt/omniauth-twitter-access-token)就是我們想要什麼,但它似乎並不符合公衆的寶石回購。我不確定它的支持狀態是什麼。 – Canuck41