class Omniauth::HubAz::Token

Attributes

header[R]
payload[R]

Public Class Methods

new(jwt, public_key: nil, algorithm: nil) click to toggle source
# File lib/omniauth/hub_az/hub_az/token.rb, line 11
def initialize(jwt, public_key: nil, algorithm: nil)
  public_key = Omniauth::HubAz.public_key if public_key.blank?
  algorithm = Omniauth::HubAz.algorithm if algorithm.blank?

  @decoded = JWT.decode(jwt, public_key, true, algorithm: algorithm)

  @payload = ActiveSupport::HashWithIndifferentAccess.new(@decoded[0])
  @header = ActiveSupport::HashWithIndifferentAccess.new(@decoded[1])

  @valid = true
rescue JWT::VerificationError, JWT::ExpiredSignature, JWT::DecodeError, JWT::IncorrectAlgorithm
  @payload = {}
  @header = {}
  @valid = false
end
verify!(jwt) click to toggle source
# File lib/omniauth/hub_az/hub_az/token.rb, line 7
def self.verify!(jwt)
  self.new(jwt)
end

Public Instance Methods

has_role?(role) click to toggle source
# File lib/omniauth/hub_az/hub_az/token.rb, line 35
def has_role?(role)
  roles.include?(role)
end
roles() click to toggle source
# File lib/omniauth/hub_az/hub_az/token.rb, line 31
def roles
  @payload[:roles] || []
end
valid?() click to toggle source
# File lib/omniauth/hub_az/hub_az/token.rb, line 27
def valid?
  !!@valid
end