我在这里使用了一些不同的宝石(Devise,Warden,Warden_Oauth),但我认为你可以回答这个问题而不必熟悉它们。我正在尝试执行Twitter Oauth策略,其中应用程序首先通过access_token和access_secret查找用户,然后如果找不到,则创建新用户。我无法弄清楚如何创建新用户/我应该在这个块中的位置。
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 :(得分:0)
从未与Warden合作,但是从与其他人的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