2016-08-02 6 views
0

omniauth-google-oauth2 gemを使用して4.2.7アプリを設定しましたが、認証ハッシュからfirst_namelast_nameを取得したいと思います。omniauth-google-oauth2 gemを使用してauthハッシュからfirst_nameとlast_nameを取得

私はしかし、私が把握することができないよう、以下、

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"] 

に見えるようにdevise.rbを変更することでomniauth-facebook宝石でこれを行うことができましたomniauth-google-oauth2を使用してfirst_name/last_nameを取得する方法。どんな助けでも大歓迎です。 omn​​iauth-グーグル-のOAuth2から

+0

あなたが表示しているのは設定だけです。 'User.from_omniauth(request.env [" omniauth.auth "]'メソッドを呼び出すと、ここで応答が利用できます(https://github.com/zquestz/omniauth-google-oauth2#devise)。 –

答えて

0

@クリスは、あなたのコールバックコントローラのアクションで、

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"} 
    } 
.... 
} 
関連する問題