diaspora/lib/openid_connect/endpoints/endpoint_start_point.rb
2016-01-04 16:49:50 +09:00

30 lines
783 B
Ruby

module OpenidConnect
module Endpoints
class EndpointStartPoint < Endpoint
def handle_response_type(req, res)
@response_type = req.response_type
end
def build_attributes(req, res)
super(req, res)
verify_nonce(req, res)
build_scopes(req)
# TODO: buildRequestObject(req)
end
def verify_nonce(req, res)
if res.protocol_params_location == :fragment && req.nonce.blank?
req.invalid_request! "nonce required"
end
end
def build_scopes(req)
@scopes = req.scope.map {|scope|
OpenidConnect::Scope.where(name: scope).first.tap do |scope|
req.invalid_scope! "Unknown scope: #{scope}" unless scope
end
}
end
end
end
end