Module: SMARTAppLaunch::MockSMARTServer::SMARTAuthorizationResponseCreation

Included in:
AuthorizationEndpoint
Defined in:
lib/smart_app_launch/endpoints/mock_smart_server/smart_authorization_response_creation.rb

Instance Method Summary collapse

Instance Method Details

#make_smart_authorization_responseObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/smart_app_launch/endpoints/mock_smart_server/smart_authorization_response_creation.rb', line 8

def make_smart_authorization_response
  redirect_uri = request.params[:redirect_uri]
  if redirect_uri.blank?
    response.status = 400
    response.body = { 
      error: 'Bad request',
      message: 'Missing required redirect_uri parameter.'}.to_json
    response.content_type = 'application/json'
    return
  end
  
  client_id = request.params[:client_id]
  state = request.params[:state]
  
  exp_min = 10
  token = MockSMARTServer.client_id_to_token(client_id, exp_min)
  query_string = "code=#{ERB::Util.url_encode(token)}&state=#{ERB::Util.url_encode(state)}"
  response.headers['Location'] =  "#{redirect_uri}#{redirect_uri.include?('?') ? '&' : '?'}#{query_string}"
  response.status = 302
end