1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
module Rack
module OAuth2
module Server
module Abstract
class Request < Rack::Request
include AttrRequired, AttrOptional
attr_required :client_id
attr_optional :scope
def initialize(env)
super
@client_id ||= params['client_id']
@scope = Array(params['scope'].to_s.split(' '))
end
def attr_missing!
if params['client_id'].present? && @client_id != params['client_id']
invalid_request! 'Multiple client credentials are provided.'
end
super
rescue AttrRequired::AttrMissing => e
invalid_request! e.message, state: @state, redirect_uri: @redirect_uri
end
end
end
end
end
end
|