class BsJwt::Authentication

Attributes

display_name[RW]
email[RW]
expires_at[RW]
issued_at[RW]
roles[RW]
token[RW]
user_id[RW]

Public Class Methods

from_jwt_payload(payload, jwt_token) click to toggle source
# File lib/bs_jwt/authentication.rb, line 7
def self.from_jwt_payload(payload, jwt_token)
  new(
    roles: payload['https://buddy.buddyandselly.com/roles'],
    display_name: payload['nickname'],
    token: jwt_token,
    expires_at: Time.at(payload['exp']),
    email: payload['name'],
    user_id: payload['sub'],
    issued_at: Time.at(payload['iat'])
  )
end
new(attributes = {}) click to toggle source
# File lib/bs_jwt/authentication.rb, line 19
def initialize(attributes = {})
  attributes = attributes.with_indifferent_access
  @roles = attributes[:roles] || []
  @display_name = attributes[:display_name]
  @token = attributes[:token]
  @expires_at = attributes[:expires_at]
  @email = attributes[:email]
  @user_id = attributes[:user_id]
  @issued_at = attributes[:issued_at]
end

Public Instance Methods

expired?() click to toggle source
# File lib/bs_jwt/authentication.rb, line 34
def expired?
  Time.now >= expires_at
end
has_role?(role) click to toggle source
# File lib/bs_jwt/authentication.rb, line 30
def has_role?(role) # rubocop:disable Naming/PredicateName
  roles.include?(role)
end
to_h() click to toggle source
# File lib/bs_jwt/authentication.rb, line 38
def to_h
  instance_values
end