我有一个使用omniauth-google-oauth2 gem的rails 4.2.7应用程序设置,我想从auth散列中检索first_name和last_name。
我可以通过修改omniauth-facebook创业板来实现这一点,devise.rb如下所示,
devise.rb
# Omniauth / Oauth2 settings
callback_url = if Rails.env == "development"
ENV['FB_CALLBACK']
else
ENV['FB_CALLBACK_PROD']
end
config.omniauth :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], callback_url: callback_url,
:scope => 'email',
:info_fields => 'email, first_name, last_name'
# Google - OmniAuth
require 'omniauth-google-oauth2'
config.omniauth :google_oauth2, ENV["GOOGLE_CLIENT_ID"], ENV["GOOGLE_CLIENT_SECRET"]但是,我似乎不知道如何使用first_name / last_name检索omniauth-google-oauth2。任何帮助都将不胜感激。
发布于 2016-08-02 17:46:53
@克里斯,在你的回调控制器动作中,
auth = request.env['omniauth.auth']
request.env['omniauth.auth']将包含用户第四次会话的散列,其中基本用户信息将在info中持久化,即auth["info"]
auth
====
{
.....
"info"=>
{"name"=>"Username",
"email"=>"Useremail",
"first_name"=>"firstname",
"last_name"=>"lastname",
"image"=> "image_url",
"urls"=>{"Google"=>"https://plus.google.com/xxxxxxxxxxxxxxxxx"}
}
....
}https://stackoverflow.com/questions/38726722
复制相似问题