class SMARTAppLaunch::AppRedirectTest
def self.calculate_s256_challenge(verifier)
def self.calculate_s256_challenge(verifier) Base64.urlsafe_encode64(Digest::SHA256.digest(verifier), padding: false) end
def aud
def aud url end
def authorization_url_builder(url, params)
def authorization_url_builder(url, params) uri = URI(url) # because the URL might have parameters on it original_parameters = Hash[URI.decode_www_form(uri.query || '')] new_params = original_parameters.merge(params) uri.query = URI.encode_www_form(new_params) uri.to_s end
def default_redirect_uri
def default_redirect_uri "#{Inferno::Application['base_url']}/custom/smart/redirect" end
def redirect_uri
def redirect_uri config.options[:redirect_uri].presence || default_redirect_uri end
def wait_message(auth_url)
def wait_message(auth_url) if config.options[:redirect_message_proc].present? return instance_exec(auth_url, &config.options[:redirect_message_proc]) end %( ### #{self.class.parent&.parent&.title} [Follow this link to authorize with the SMART server](#{auth_url}). Tests will resume once Inferno receives a request at `#{redirect_uri}` with a state of `#{state}`. ) end