相关疑难解决方法(0)

Rails,Devise和Omniauth - 设置问题

我正在尝试(再次)使用Rails 4,devise和omniauth设置身份验证.

我试着按照这篇文章中的例子:Rails 4,Devise,Omniauth(有多个提供者)

我安装了这些宝石:

gem 'devise'
gem 'omniauth-google-oauth2'
gem 'omniauth-facebook'
gem 'omniauth-twitter'
gem 'omniauth-linkedin-oauth2'
gem 'oauth2'
Run Code Online (Sandbox Code Playgroud)

我有一个用户模型和一个身份验证模型.

我有:

User.rb:

  has_many :authentications

def disapprove
    self.approved = false
  end

  def approve
    self.approved = true
  end
Run Code Online (Sandbox Code Playgroud)

SOCIALS = {facebook:'Facebook',google_oauth2:'Google',linkedin:'Linkedin'}

def self.from_omniauth(auth, current_user)
  authentication = Authentication.where(:provider => auth.provider,
                                  :uid => auth.uid.to_s, 
                                  :token => auth.credentials.token, 
                                  :secret => auth.credentials.secret).first_or_initialize
  authentication.profile_page = auth.info.urls.first.last unless authentication.persisted?
  if authentication.user.blank?
    user = current_user.nil? ? User.where('email = ?', auth['info']['email']).first : current_user
    if user.blank?
      user = User.new
      user.skip_confirmation!
      user.password = …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise omniauth

11
推荐指数
1
解决办法
3119
查看次数

标签 统计

devise ×1

omniauth ×1

ruby-on-rails ×1