gem" GoogleOauth2" "凭证无效

时间:2016-03-19 22:55:13

标签: ruby-on-rails devise omniauth

我不知道来自Devise + omniauth Google的以下错误消息的来源:

"无法通过GoogleOauth2对您进行身份验证,因为"凭据无效"。

是否来自Google API的操作?或者来自我的代码的错误?

是否有正确的约定来在application.yml中调用API ID和SECRET KEYS

我查了很多教程,但没有答案......

请你指导我。谢谢你的明确解释。

这是我的控制器代码

def google_oauth2
    user = User.find_for_google_oauth2(request.env['omniauth.auth'])

    if user.persisted?
      sign_in_and_redirect user, event: :authentication
      set_flash_message(:notice, :success, kind: 'GoogleOauth2') if is_navigational_format?
    else
      session['devise.google_oauth2_data'] = request.env['omniauth.auth']
      redirect_to new_user_registration_url
    end
  end

以下是模型:

devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
         :omniauthable, omniauth_providers: [:facebook, :google_oauth2] 

  has_and_belongs_to_many :oauth_credentials

  def self.find_for_google_oauth2(auth)
    where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      user.email = auth.info.email
      user.password = Devise.friendly_token[0,20]  # Fake password for validation
      user.first_name = auth.info.name
      user.last_name = auth.info.nickname
      user.picture = auth.info.image
      user.token = auth.credentials.token
    end
  end 

感谢您的帮助。

0 个答案:

没有答案