Class: OpenIDTokenProxy::Client
- Inherits:
-
Object
- Object
- OpenIDTokenProxy::Client
- Defined in:
- lib/openid_token_proxy/client.rb
Defined Under Namespace
Classes: AuthCodeError, CredentialsError, RefreshTokenError
Instance Attribute Summary collapse
-
#config ⇒ Object
Returns the value of attribute config.
Instance Method Summary collapse
- #authorization_uri ⇒ Object
-
#initialize(config = OpenIDTokenProxy.config) ⇒ Client
constructor
A new instance of Client.
- #new_client ⇒ Object
-
#retrieve_token!(params) ⇒ Object
Retrieves a token for given auth code, refresh token or username/password.
Constructor Details
#initialize(config = OpenIDTokenProxy.config) ⇒ Client
Returns a new instance of Client.
5 6 7 |
# File 'lib/openid_token_proxy/client.rb', line 5 def initialize(config = OpenIDTokenProxy.config) @config = config end |
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
3 4 5 |
# File 'lib/openid_token_proxy/client.rb', line 3 def config @config end |
Instance Method Details
#authorization_uri ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/openid_token_proxy/client.rb', line 9 def config. || new_client.( domain_hint: config.domain_hint, prompt: config.prompt, resource: config.resource ) end |
#new_client ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# 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., token_endpoint: config.token_endpoint, userinfo_endpoint: config.userinfo_endpoint, redirect_uri: config.redirect_uri ) end |
#retrieve_token!(params) ⇒ Object
Retrieves a token for given auth code, refresh token or username/password
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/openid_token_proxy/client.rb', line 27 def retrieve_token!(params) client = new_client if auth_code = params.delete(:auth_code) client. = 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.) if auth_code raise RefreshTokenError.new(e.) if refresh_token raise CredentialsError.new(e.) if username end |