ruby-on-rails – 用于Ruby的Warden Devise Authentication Gems
发布时间:2020-12-17 03:09:14 所属栏目:百科 来源:网络整理
导读:Devise,基于Warden(另一个auth gem)的 Ruby的身份验证gem不支持Twitter Oauth作为身份验证策略,但Warden确实如此.有一种方法可以在Devise中使用Warden Twitter Oauth策略,但我无法弄清楚.我在设计配置文件中使用以下块: config.warden do |manager| manager
Devise,基于Warden(另一个auth gem)的
Ruby的身份验证gem不支持Twitter Oauth作为身份验证策略,但Warden确实如此.有一种方法可以在Devise中使用Warden 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 manager.default_strategies.unshift :twitter_oauth end 但我继续收到各种错误信息.有谁知道如何使这项工作?我假设还有更多要做的事情(配置一个新的链接/路由与Warden交谈,可能为Devise用户模型添加属性等),但我无法弄清楚它们是什么.请帮忙. 解决方法# Needed gems. Add to your Gemfile if you are using Rails3. gem 'devise' gem 'warden_oauth' #models/user.rb devise :token_authenticatable,:oauthable # <-- Must have these #/config/initializers/devise.rb require 'warden_oauth' config.warden do |manager| manager.oauth(:twitter) do |twitter| twitter.consumer_secret = '<SECRET>' twitter.consumer_key = '<CONSUMER KEY>' twitter.options :site => 'http://twitter.com' end manager.default_strategies(:scope => :user).unshift :twitter_oauth end Warden::OAuth.access_token_user_finder(:twitter) do |access_token| User.find_or_create_by(:token => access_token.token,:secret => access_token.secret).tap do |user| #... end end # Link to "Login With Twitter" somewhere in your view <%= link_to( "Login With Twitter",user_session_path(:warden_oauth_provider => 'twitter') ) %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |