omn​​iauth google获取电子邮件rails app

时间:2018-06-11 19:26:11

标签: ruby-on-rails ruby omniauth omniauth-google-oauth2

我只是使用devise和omniauth创建一个新的rails应用程序。我的第一个目标是使用ID和来自Google帐户的电子邮件来提供我的数据库。

不幸的是,直到现在我才得到一个身份证。

这是我的用户控制器:

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and 
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:google_oauth2]
         attr_accessor :email

         def email_required?
          false
        end 

         def self.from_omniauth(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]
          end
      end
    end

我的devise.rb

config.omniauth :google_oauth2, ENV['google_client_id'], ENV['google_client_secret'], scope: 'userinfo.profile,youtube,plus.profile.emails.read'

EDIT 我还尝试了其他范围,例如userinfo.email或email ..但仍然不在数据库中。

我不明白为什么它不起作用? 提前谢谢

0 个答案:

没有答案