class OpenIDTokenProxy::Client
Attributes
config[RW]
Public Class Methods
new(config = OpenIDTokenProxy.config)
click to toggle source
# File lib/openid_token_proxy/client.rb, line 5 def initialize(config = OpenIDTokenProxy.config) @config = config end
Public Instance Methods
new_client()
click to toggle source
# File lib/openid_token_proxy/client.rb, line 55 def new_client OpenIDConnect::Client.new( identifier: config.client_id, secret: config.client_secret, authorization_endpoint: config.authorization_endpoint, token_endpoint: config.token_endpoint, userinfo_endpoint: config.userinfo_endpoint, redirect_uri: config.redirect_uri ) end
retrieve_token!(params)
click to toggle source
Retrieves a token for given auth code, refresh token or username/password
# File lib/openid_token_proxy/client.rb, line 27 def retrieve_token!(params) client = new_client if auth_code = params.delete(:auth_code) client.authorization_code = auth_code end if refresh_token = params.delete(:refresh_token) client.refresh_token = refresh_token end if username = params.delete(:username) client.resource_owner_credentials = [ username, params.delete(:password) ] end response = client.access_token!(:query_string, params) token = Token.decode!(response.access_token) token.refresh_token = response.refresh_token token rescue Rack::OAuth2::Client::Error => e raise AuthCodeError.new(e.message) if auth_code raise RefreshTokenError.new(e.message) if refresh_token raise CredentialsError.new(e.message) if username end