Sha256: b63775deff8057b600ae28d714369d50b1ee03c675227ae7f7aa3e267c46cb55

Contents?: true

Size: 1.14 KB

Versions: 15

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Doorkeeper
  module OpenidConnect
    module Claims
      class Claim
        attr_accessor :name, :response, :scope

        # http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
        # http://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims
        STANDARD_CLAIMS = {
          profile: %i[
            name family_name given_name middle_name nickname preferred_username
            profile picture website gender birthdate zoneinfo locale updated_at
          ],
          email: %i[email email_verified],
          address: %i[address],
          phone: %i[phone_number phone_number_verified],
        }.freeze

        def initialize(options = {})
          @name = options[:name].to_sym
          @response = Array.wrap(options[:response])
          @scope = options[:scope].to_sym if options[:scope]

          # use default scope for Standard Claims
          @scope ||= STANDARD_CLAIMS.find do |_scope, claims|
            claims.include? @name
          end.try(:first)

          # use profile scope as default fallback
          @scope ||= :profile
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
doorkeeper-openid_connect-1.8.10 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.8 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.7 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.6 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.5 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.4 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.3 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.2 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.1 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.0 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.8.0.pre.rc1 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.7.5 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.7.4 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.7.3 lib/doorkeeper/openid_connect/claims/claim.rb
doorkeeper-openid_connect-1.7.2 lib/doorkeeper/openid_connect/claims/claim.rb