class MagentaSSO::Response
A Magenta authentication response
Attributes
client_id[RW]
client_secret[RW]
nonce[RW]
scope_data[RW]
user_data[RW]
Public Class Methods
new(client_id, client_secret, nonce, user_data, scope_data)
click to toggle source
# File lib/magentasso.rb, line 93 def initialize(client_id, client_secret, nonce, user_data, scope_data) @client_id = client_id @client_secret = client_secret @nonce = nonce @user_data = user_data @scope_data = scope_data end
verify(payload, signature, client_secret)
click to toggle source
# File lib/magentasso.rb, line 101 def self.verify(payload, signature, client_secret) payload = ::MagentaSSO.verify_and_decode(payload, signature, client_secret) new( payload["client_id"], client_secret, payload["nonce"], payload["user_data"], payload["scope_data"] ) end
Public Instance Methods
email_address()
click to toggle source
# File lib/magentasso.rb, line 137 def email_address @user_data&.[]("email") end
external_id()
click to toggle source
# File lib/magentasso.rb, line 133 def external_id @user_data&.[]("external_id") end
profile_name()
click to toggle source
# File lib/magentasso.rb, line 141 def profile_name return nil unless @scope_data.key?("profile") return [@scope_data["profile"]["name_combined"], nil] if @scope_data["profile"].key?("name_combined") [ @scope_data["profile"]["name_first"], @scope_data["profile"]["name_last"] ] end
query_params()
click to toggle source
# File lib/magentasso.rb, line 124 def query_params payload, signature = sign { payload: payload, signature: signature } end
sign()
click to toggle source
# File lib/magentasso.rb, line 113 def sign payload = { client_id: @client_id, nonce: @nonce, user_data: @user_data, scope_data: @scope_data } ::MagentaSSO.encode_and_sign(payload, @client_secret) end