Sha256: 3d32a9d2bc4c7533a892acef0953425cdcc67e30c4849bfb07f988403cd0ef89

Contents?: true

Size: 675 Bytes

Versions: 1

Compression:

Stored size: 675 Bytes

Contents

# frozen_string_literal: true
module Masks
  module OpenID
    class UserInfoController < ApplicationController
      def show
        claims = { sub: openid_client.subject(current_actor) }

        if access_token.scope?("email")
          claims[:email] = current_actor.primary_email&.email
        end

        if access_token.scope?("phone")
          claims[:phone] = current_actor.phone_number
        end

        render json: OpenIDConnect::ResponseObject::UserInfo.new(claims)
      end

      private

      def access_token
        @access_token ||= masked_session.extra(:access_token)
      end

      delegate :openid_client, to: :access_token
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
masks-0.4.0 app/controllers/masks/openid/userinfo_controller.rb