# File lib/omniauth/strategies/google_oauth2.rb, line 61 def custom_build_access_token if verify_token(request.params['id_token'], request.params['access_token']) ::OAuth2::AccessToken.from_hash(client, request.params.dup) else orig_build_access_token end end
# File lib/omniauth/strategies/google_oauth2.rb, line 57 def raw_info @raw_info ||= access_token.get('https://www.googleapis.com/oauth2/v1/userinfo').parsed end
# File lib/omniauth/strategies/google_oauth2.rb, line 84 def image_url(options) original_url = raw_info['picture'] return original_url if original_url.nil? || (!options[:image_size] && !options[:image_aspect_ratio]) image_params = [] if options[:image_size].is_a?(Integer) image_params << "s#{options[:image_size]}" elsif options[:image_size].is_a?(Hash) image_params << "w#{options[:image_size][:width]}" if options[:image_size][:width] image_params << "h#{options[:image_size][:height]}" if options[:image_size][:height] end image_params << 'c' if options[:image_aspect_ratio] == 'square' params_index = original_url.index('/photo.jpg') original_url.insert(params_index, ('/' + image_params.join('-'))) end
# File lib/omniauth/strategies/google_oauth2.rb, line 73 def prune!(hash) hash.delete_if do |_, v| prune!(v) if v.is_a?(Hash) v.nil? || (v.respond_to?(:empty?) && v.empty?) end end
# File lib/omniauth/strategies/google_oauth2.rb, line 80 def verified_email raw_info['verified_email'] ? raw_info['email'] : nil end
# File lib/omniauth/strategies/google_oauth2.rb, line 101 def verify_token(id_token, access_token) return false unless (id_token && access_token) raw_response = client.request(:get, 'https://www.googleapis.com/oauth2/v2/tokeninfo', :params => { :id_token => id_token, :access_token => access_token }).parsed raw_response['issued_to'] == options.client_id end