我只是使用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 ..但仍然不在数据库中。
我不明白为什么它不起作用? 提前谢谢