Sha256: 2ed825d24d582adcf9a69f94551127005d49a83c33657f339a9d9f5365006fc8
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
module OmniAuth module Strategies class Bungie < OmniAuth::Strategies::OAuth2 args [:client_id, :client_secret, :api_key, :redirect_uri] option :name, 'bungie' option :client_options, { :site => 'https://www.bungie.net', :authorize_url => '/en/oauth/authorize', :token_url => '/platform/app/oauth/token' } def client client_options = options.client_options.merge( :connection_opts => { :headers => { 'X-API-Key' => options.api_key } }, :redirect_uri => options.redirect_uri ) ::OAuth2::Client.new( options.client_id, options.client_secret, deep_symbolize(client_options) ) end uid do raw_info.dig('bungieNetUser', 'membershipId') end info do info = raw_info['bungieNetUser'] || {} { :membership_id => info['membershipId'], :unique_name => info['uniqueName'], :display_name => info['displayName'] } end extra { raw_info } def raw_info return @raw_info unless @raw_info.nil? @raw_info = access_token.get('/Platform/User/GetMembershipsForCurrentUser/').parsed @raw_info = (@raw_info['ErrorCode'] == 1) ? @raw_info['Response'] : {} end def build_access_token verifier = request.params["code"] client.auth_code.get_token(verifier, token_params.to_hash(symbolize_keys: true), deep_symbolize(options.auth_token_params)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-bungie-oauth2-1.0.2 | lib/omniauth/strategies/bungie.rb |