Class: OpenIDConnect::RequestObject

Inherits:
ConnectObject show all
Includes:
JWTnizable
Defined in:
lib/openid_connect/request_object.rb,
lib/openid_connect/request_object/id_token.rb,
lib/openid_connect/request_object/claimable.rb,
lib/openid_connect/request_object/user_info.rb

Defined Under Namespace

Modules: Claimable Classes: IdToken, UserInfo

Class Method Summary collapse

Instance Method Summary collapse

Methods included from JWTnizable

#to_jwt

Methods inherited from ConnectObject

all_attributes, #all_attributes, #as_json, #require_at_least_one_attributes, #validate!

Constructor Details

#initialize(attributes = {}) ⇒ RequestObject

Returns a new instance of RequestObject.



6
7
8
9
# File 'lib/openid_connect/request_object.rb', line 6

def initialize(attributes = {})
  attributes[:user_info] ||= attributes[:userinfo]
  super attributes
end

Class Method Details

.decode(jwt_string, key) ⇒ Object



30
31
32
# File 'lib/openid_connect/request_object.rb', line 30

def decode(jwt_string, key)
  new JSON::JWT.decode(jwt_string, key)
end

.fetch(request_uri, key) ⇒ Object



34
35
36
37
# File 'lib/openid_connect/request_object.rb', line 34

def fetch(request_uri, key)
  jwt_string = OpenIDConnect.http_client.get_content(request_uri)
  decode jwt_string, key
end

Instance Method Details

#as_json_with_user_info(options = {}) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/openid_connect/request_object.rb', line 19

def (options = {})
  hash =  options
  if hash.include?(:user_info)
    hash[:userinfo] = hash.delete(:user_info)
  end
  hash.with_indifferent_access
end

#id_token=(attributes = {}) ⇒ Object



11
12
13
# File 'lib/openid_connect/request_object.rb', line 11

def id_token=(attributes = {})
  @id_token = IdToken.new(attributes) if attributes.present?
end

#user_info=(attributes = {}) ⇒ Object



15
16
17
# File 'lib/openid_connect/request_object.rb', line 15

def user_info=(attributes = {})
  @user_info = UserInfo.new(attributes) if attributes.present?
end