Rails的登錄具有其他autho插件,它爲集成的Twitter,Facebook,谷歌,雅虎等效果很好,但有一個解決方案...的OAuth在Rails的 - 谷歌,推特,臉譜,連像計算器登錄
似乎每個人都有自己的插件和要求,混合他們將是一個混亂。
這是爲了像使用Stackoverflow完成工作而不是使用API的強大功能一樣登錄用戶。
我想要做的是做什麼stackoverflow爲登錄,但在軌道。
Rails的登錄具有其他autho插件,它爲集成的Twitter,Facebook,谷歌,雅虎等效果很好,但有一個解決方案...的OAuth在Rails的 - 谷歌,推特,臉譜,連像計算器登錄
似乎每個人都有自己的插件和要求,混合他們將是一個混亂。
這是爲了像使用Stackoverflow完成工作而不是使用API的強大功能一樣登錄用戶。
我想要做的是做什麼stackoverflow爲登錄,但在軌道。
編寫自己的控制器代碼來連接到每個服務並重定向並不難。例如,要使用oauth對Twitter進行身份驗證,需要執行兩個操作和大約20行代碼。
將每個服務的代碼保存在自己的控制器中。
def twitter_oauth
o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
o.set_callback_url(twitter_cb_url)
session[:twitter_oauth_request_token] = o.request_token.token
session[:twitter_oauth_request_secret] = o.request_token.secret
redirect_to o.request_token.authorize_url
end
def twitter_oauth_cb
o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
if params[:denied]
redirect_to root_url
elsif params[:oauth_verifier]
o.authorize_from_request(session[:twitter_oauth_request_token],
session[:twitter_oauth_request_secret],
params[:oauth_verifier])
# look up this user in the db by o.access_token.token
# is the user not found? create them, save their token
# log them in - UserSession.create(user, true)
redirect_to root_url
end
end
如果你有它的預算,你可以檢查出RPX:https://rpxnow.com/。
我用authlogic做了一個實現,使用了與StackOverflow相同的JQuery OpenID Selector插件。適用於谷歌,雅虎,Facebook等。我已經使用了它3個月左右,效果很好。還有一些鍛鍊方面的問題,它也支持自動註冊。
我想將twitter添加到未來的版本,並希望其他人可以幫助添加一些功能/錯誤修復。 ;-) 一探究竟。
在行動:
http://big-glow-mama.heroku.com/
代碼:
如果你想有一個功能更完整的解決方案,要實現傳統的註冊方法,以及,那麼你可以使用devise寶石其中已經有支持omniauth。
你可以按照下面的教程上railscast
http://railscasts.com/episodes/235-devise-and-omniauth-revised
我希望這會幫助別人!
這是怎麼回事?謝謝。 – 2010-04-02 15:01:26
爲twitter增加了示例代碼。這足以讓你開始,但你必須插入自己的用戶查找和創建。 – 2010-04-02 18:20:54
感謝您的努力,會試試看 – s84 2010-04-03 02:53:56