Class: Doorkeeper::OpenidConnect::ClaimsBuilder
- Inherits:
-
Object
- Object
- Doorkeeper::OpenidConnect::ClaimsBuilder
- Defined in:
- lib/doorkeeper/openid_connect/claims_builder.rb
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(&block) ⇒ ClaimsBuilder
constructor
A new instance of ClaimsBuilder.
- #normal_claim(name, response: [:user_info], scope: nil, &block) ⇒ Object (also: #claim)
Constructor Details
#initialize(&block) ⇒ ClaimsBuilder
Returns a new instance of ClaimsBuilder.
19 20 21 22 |
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 19 def initialize(&block) @claims = OpenStruct.new instance_eval(&block) end |
Class Method Details
.generate(access_token, response) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 8 def self.generate(access_token, response) resource_owner = Doorkeeper::OpenidConnect.configuration.resource_owner_from_access_token.call(access_token) Doorkeeper::OpenidConnect.configuration.claims.to_h.map do |name, claim| if claim.scopes.any? { |scope| access_token.scopes.exists?(scope) } && claim.response.include?(response) [name, claim.generator.call(resource_owner, access_token.scopes, access_token)] end end.compact.to_h end |
Instance Method Details
#build ⇒ Object
24 25 26 |
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 24 def build @claims end |
#normal_claim(name, response: [:user_info], scope: nil, &block) ⇒ Object Also known as: claim
28 29 30 31 32 33 34 35 36 |
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 28 def normal_claim(name, response: [:user_info], scope: nil, &block) @claims[name] = Claims::NormalClaim.new( name: name, response: response, scope: scope, generator: block ) end |