Sha256: 49b2ec216ff1435b2137f5f04735b7a6d40dd053012ffbfab7231182551a9985
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'omniauth-oauth2' require 'multi_json' module OmniAuth module Strategies class Amazon < OmniAuth::Strategies::OAuth2 option :name, 'amazon' option :client_options, { :site => 'https://www.amazon.com/', :authorize_url => 'https://www.amazon.com/ap/oa', :token_url => 'https://api.amazon.com/auth/o2/token' } option :access_token_options, { :mode => :query } option :authorize_params, { :scope => 'profile postal_code' } def build_access_token token_params = { :redirect_uri => callback_url, :client_id => client.id, :client_secret => client.secret } verifier = request.params['code'] client.auth_code.get_token(verifier, token_params) end uid { raw_info['Profile']['CustomerId'] } info do { 'email' => raw_info['Profile']['PrimaryEmail'], 'name' => raw_info['Profile']['Name'] } end extra do { 'postal_code' => raw_info['Profile']['PostalCode'] } end def raw_info access_token.options[:parse] = :json # This way is not working right now, do it the longer way # for the time being # #@raw_info ||= access_token.get('/ap/user/profile').parsed url = "/ap/user/profile" params = {:params => { :access_token => access_token.token}} @raw_info ||= access_token.client.request(:get, url, params).parsed end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-amazon-1.0.0 | lib/omniauth/strategies/amazon.rb |