首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用oauth2 GoogleOAuth2gem从auth散列检索first_name和last_name

使用oauth2 GoogleOAuth2gem从auth散列检索first_name和last_name
EN

Stack Overflow用户
提问于 2016-08-02 17:15:39
回答 1查看 563关注 0票数 0

我有一个使用omniauth-google-oauth2 gem的rails 4.2.7应用程序设置,我想从auth散列中检索first_namelast_name

我可以通过修改omniauth-facebook创业板来实现这一点,devise.rb如下所示,

devise.rb

代码语言:javascript
复制
# 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。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-08-02 17:46:53

@克里斯,在你的回调控制器动作中,

auth = request.env['omniauth.auth']

request.env['omniauth.auth']将包含用户第四次会话的散列,其中基本用户信息将在info中持久化,即auth["info"]

代码语言:javascript
复制
auth
====
{
.....
"info"=>
  {"name"=>"Username",
   "email"=>"Useremail",
   "first_name"=>"firstname",
   "last_name"=>"lastname",
   "image"=> "image_url",
   "urls"=>{"Google"=>"https://plus.google.com/xxxxxxxxxxxxxxxxx"}
  }
....
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38726722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档