class MagentaSSO::Request

A Magenta authentication request.

Attributes

callback_url[RW]
client_id[RW]
client_secret[RW]
nonce[RW]
scopes[RW]

Public Class Methods

new(client_id, client_secret, nonce, scopes, callback_url) click to toggle source
# File lib/magentasso.rb, line 47
def initialize(client_id, client_secret, nonce, scopes, callback_url)
  @client_id = client_id
  @client_secret = client_secret
  @nonce = nonce || SecureRandom.random_number(9_999_999)
  @scopes = [scopes].flatten
  @callback_url = callback_url
end
verify(payload, signature, client_secret) click to toggle source
# File lib/magentasso.rb, line 55
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["scopes"],
    payload["callback_url"]
  )
end

Public Instance Methods

query_params() click to toggle source
# File lib/magentasso.rb, line 78
def query_params
  payload, signature = sign

  {
    client: @client_id,
    payload: payload,
    signature: signature
  }
end
sign() click to toggle source
# File lib/magentasso.rb, line 67
def sign
  payload = {
    client_id: @client_id,
    nonce: @nonce,
    scopes: @scopes,
    callback_url: @callback_url
  }

  ::MagentaSSO.encode_and_sign(payload, @client_secret)
end