Class: SMART_UDAP_HarmonizationTestKit::SMART_UDAP_RequestBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_udap_harmonization_test_kit/smart_udap_request_builder.rb

Overview

rubocop:disable Naming/ClassAndModuleCamelCase

Class Method Summary collapse

Class Method Details

.build_token_refresh_request(client_assertion_jwt, refresh_token, requested_scopes) ⇒ Object

Client MUST authenticate to auth server during token refresh per RFC 6749 Section 6 datatracker.ietf.org/doc/html/rfc6749#section-6 Assuming auth mechanism is same as it was for token exchange, i.e., signed client assertion JWT



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/smart_udap_harmonization_test_kit/smart_udap_request_builder.rb', line 9

def self.build_token_refresh_request(client_assertion_jwt, refresh_token, requested_scopes)
  token_refresh_headers = {
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded'
  }

  token_refresh_body = {
    'grant_type' => 'refresh_token',
    'refresh_token' => refresh_token,
    'scope' => requested_scopes,
    'client_assertion_type' => 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
    'client_assertion' => client_assertion_jwt,
    'udap' => '1'
  }.compact

  [token_refresh_headers, URI.encode_www_form(token_refresh_body)]
end