2010-05-22 389 views
1

我在這裏使用了幾個不同的寶石(Devise,Warden,Warden_Oauth),但我認爲你可以回答這個問題,而不必熟悉它們。我試圖執行Twitter Oauth策略,應用程序首先通過access_token和access_secret查找用戶,然後如果找不到用戶,則會創建一個新用戶。我無法弄清楚如何創建新的用戶/在這個塊中我應該這樣做。Twitter Oauth問題

config.warden do |manager| 

     manager.oauth(:twitter) do |twitter| 
     twitter.consumer_secret = "<secret>" 
     twitter.consumer_key = "<key>" 
     twitter.options :site => 'http://twitter.com' 
     end 

     Warden::OAuth.access_token_user_finder(:twitter) do |access_token| 
     User.find_by_access_token_and_access_secret(access_token.token, access_token.secret) 
     end 

     manager.default_strategies.unshift :twitter_oauth 
end 

感謝您的幫助。

回答

0

決不監獄長的工作,但與他人EXP,我想它應該是這樣的

Warden::OAuth.access_token_user_finder(:twitter) do |access_token| 
    user = User.find_by_access_token_and_access_secret(access_token.token, access_token.secret) 
    user ||= User.create(:access_token => access_token.token, :secret => access_token.secret) 
    end 
end