class Keyrod::OIDCClient

Attributes

client_id[R]
client_secret[R]
oidc_site[R]
refresh_token[R]
ssl[R]

Public Class Methods

new() click to toggle source
# File lib/keyrod/oidc_client.rb, line 8
def initialize
  @oidc_site = Keyrod::Settings[:'oidc-site']
  @refresh_token = Keyrod::Settings[:'refresh-token']
  @client_id = Keyrod::Settings[:'client-id']
  @client_secret = Keyrod::Settings[:'client-secret']
  @ssl = Keyrod::Settings[:ssl]
end

Public Instance Methods

access_token() click to toggle source
# File lib/keyrod/oidc_client.rb, line 16
def access_token
  conn = Faraday.new(oidc_site, ssl: ssl, params: params)

  logger.debug "access_token: Sending request with params #{conn.params}"
  response = conn.post
  logger.debug "Received response with code #{response.status} and body #{response.body}"
  raise Keyrod::Errors::ResponseError, "Response from OIDC server was #{response.status}" unless response.success?

  JSON.parse(response.body, symbolize_names: true)[:access_token]
end

Private Instance Methods

params() click to toggle source
# File lib/keyrod/oidc_client.rb, line 29
def params
  { grant_type: 'refresh_token',
    client_id: client_id,
    client_secret: client_secret,
    refresh_token: refresh_token,
    scope: 'openid profile' }
end