![](/img/trans.png)
[英]Integrating Twitter Oauth AND Facebook Connect for login on a rails app
[英]OAuth in Rails - google, twitter, facebook, connect for login like stackoverflow login
Rails有其余的autho插件,運行良好,但有一個解決方案,結合Twitter,Facebook,谷歌,雅虎等...
似乎每個都有自己的插件和要求,混合它們將是一個爛攤子。
這適用於登錄用戶,例如Stackoverflow如何完成工作而不是使用API的強大功能。
我想做的是做stackoverflow為登錄做的事情,但是在rails中。
編寫自己的控制器代碼以連接到每個服務並重定向並不是很困難。 例如,使用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
我使用authlogic實現了這個,使用了StackOverflow使用的相同JQuery OpenID Selector插件。 與谷歌,雅虎,Facebook等合作。我已經使用它約3個月,它運作良好。 還有一些問題,它還支持自動注冊。
我想將twitter添加到未來版本中,並希望其他人可以幫助添加一些功能/錯誤修復。 ;-) 看看這個。
在行動:
http://big-glow-mama.heroku.com/
碼:
如果你想有一個功能更完整的解決方案,並希望實現傳統方法的注冊,以及,那么你可以使用設計 ,其已經具備了omniauth支持寶石。
您可以在railscast上關注以下教程
http://railscasts.com/episodes/235-devise-and-omniauth-revised
我希望它能幫助別人!
如果您有預算,可以查看RPX: https : //rpxnow.com/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.