Class: Doorkeeper::OpenidConnect::ClaimsBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/doorkeeper/openid_connect/claims_builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ ClaimsBuilder

Returns a new instance of ClaimsBuilder.



16
17
18
19
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 16

def initialize(&block)
  @claims = OpenStruct.new
  instance_eval(&block)
end

Class Method Details

.generate(access_token, response) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 6

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 access_token.scopes.exists?(claim.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

#buildObject



21
22
23
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 21

def build
  @claims
end

#normal_claim(name, response: [:user_info], scope: nil, &block) ⇒ Object Also known as: claim



25
26
27
28
29
30
31
32
33
# File 'lib/doorkeeper/openid_connect/claims_builder.rb', line 25

def normal_claim(name, response: [:user_info], scope: nil, &block)
  @claims[name] =
    Claims::NormalClaim.new(
      name: name,
      response: response,
      scope: scope,
      generator: block
    )
end