class Simple::OAuth2::Generators::Authorization
Authorization
generator class Processes the request by required Response Type and builds the response
Public Class Methods
generate_for(env) { |request, response| ... }
click to toggle source
Generates Authorization
Response based on the request
@return [Simple::OAuth2::Responses] response
# File lib/simple_oauth2/generators/authorization.rb, line 12 def generate_for(env, &_block) authorization = Rack::OAuth2::Server::Authorize.new do |request, response| request.unsupported_response_type! unless allowed_types.include?(request.response_type.to_s) if block_given? yield request, response else execute_default(request, response) end end Simple::OAuth2::Responses.new(authorization.call(env)) rescue Rack::OAuth2::Server::Authorize::BadRequest => error error_response(error) end
Private Class Methods
error_response(error)
click to toggle source
Returns error Rack::Response
# File lib/simple_oauth2/generators/authorization.rb, line 31 def error_response(error) response = Rack::Response.new response.status = error.status response.header['Content-Type'] = 'application/json' response.write(JSON.dump(Rack::OAuth2::Util.compact_hash(error.protocol_params))) Simple::OAuth2::Responses.new(response.finish) end
execute_default(request, response)
click to toggle source
Runs default Simple::OAuth2
functionality for Authorization
endpoint
@param request [Rack::Request] request object @param response [Rack::Response] response object
# File lib/simple_oauth2/generators/authorization.rb, line 45 def execute_default(request, response) find_strategy(request.response_type).process(request, response) response.approve! response end
find_strategy(response_type)
click to toggle source
Returns Simple::OAuth2
strategy class by Response Type
@param response_type [Symbol] response type value
@return [Code, Token] strategy class
# File lib/simple_oauth2/generators/authorization.rb, line 57 def find_strategy(response_type) "Simple::OAuth2::Strategies::#{response_type.to_s.classify}".constantize end