ruby-on-rails – 获取(omniauth-facebook)和(omniauth-twitter)的工作

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 获取(omniauth-facebook)和(omniauth-twitter)的工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对我来说,这将是长的.

我在用着:

Ruby on Rails 4
> devise 3.0.3
> omniauth(1.1.4)
> omniauth-facebook(1.4.1)
> omniauth-twitter(1.0.0)

我最近设置了我的omniauth-facebook,一切都正常.现在我想添加omniauth-twitter,但不知何故我搞砸了,很糟糕.

1.设置我的Omniauth-Facebook我做了这个(简而言之):

  1. gem 'omniauth'
  2. gem 'omniauth-facebook'

2.)将“provider”和“uid”列添加到我的User模型中.

3.)接下来,我在config / initializers / devise.rb中声明了提供者:

  1. require "omniauth-facebook"
  2. config.omniauth :facebook,"App_ID","App_Secret",{:scope => 'email,offline_access',:client_options => {:ssl => {:ca_file => 'lib/assets/cacert.pem'}},:strategy_class => OmniAuth::Strategies::Facebook}

我编辑了我的Model User.rb

  1. # Facebook Settings
  2. def self.find_for_facebook_oauth(auth,signed_in_resource = nil)
  3. user = User.where(provider: auth.provider,uid: auth.uid).first
  4. if user.present?
  5. user
  6. else
  7. user = User.create(first_name:auth.extra.raw_info.first_name,last_name:auth.extra.raw_info.last_name,facebook_link:auth.extra.raw_info.link,user_name:auth.extra.raw_info.name,provider:auth.provider,uid:auth.uid,email:auth.info.email,password:Devise.friendly_token[0,20])
  8. end
  9. end

添加属性设计:

  1. :omniauth_providers => [:facebook]

我编辑的路线:

  1. devise_for :users,:controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

结束

虽然这对Facebook来说完美无暇,但我已经尝试了好几个小时,以使其能够在Twitter上工作,而且我根本无法想像出来.

如果有人在这方面有经验,或者只是知道解决方案可以帮助我设定这个,我会很感激:)

谢谢你们,对于这篇长篇文章,我很抱歉.

此外

Twitter不提供:电子邮件属性,所以我必须拆分我的用户注册过程我猜?

我的用户模型中的Twitter动作

  1. # Twitter Settings
  2. def self.find_for_twitter_oauth(auth,signed_in_resource=nil)
  3. user = User.where(:provider => auth[:provider],:uid => auth[:uid]).first
  4. unless user
  5. user = User.create(:first_name => auth[:name],:user_name => auth[:screen_name],:provider => auth[:provider],:uid => auth[:uid],:password => Devise.friendly_token[0,20]
  6. )
  7. end
  8. user
  9. end
  10.  
  11. # build auth cookie hash for twitter
  12. def self.build_twitter_auth_cookie_hash data
  13. {
  14. :provider => data.provider,:uid => data.uid.to_i,:access_token => data.credentials.token,:access_secret => data.credentials.secret,:first_name => data.name,:user_name => data.screen_name,}
  15. end

我必须迁移一个可确认的用户 – > How To: Add :confirmable to Users

我的形式的问题,(至少现在得到这个poing

猜你在找的Ruby相关文章