class Slots::JWT::Configuration
Attributes
authentication_model[W]
login_regex_validations[RW]
logins[R]
previous_jwt_lifetime[RW]
session_lifetime[RW]
token_lifetime[RW]
Public Class Methods
new()
click to toggle source
raise_no_error is used for rake to load
# File lib/slots/jwt/configuration.rb, line 13 def initialize @logins = {email: //} @login_regex_validations = true @authentication_model = 'User' @secret_keys = [{created_at: 0, secret: ENV['SLOT_SECRET']}] @token_lifetime = 1.hour @session_lifetime = 2.weeks # Set to nil if you dont want sessions @previous_jwt_lifetime = 5.seconds # Set to nil if you dont want sessions @manage_callbacks = Proc.new { } end
Public Instance Methods
authentication_model()
click to toggle source
# File lib/slots/jwt/configuration.rb, line 36 def authentication_model @authentication_model.to_s.constantize rescue nil end
logins=(value)
click to toggle source
# File lib/slots/jwt/configuration.rb, line 24 def logins=(value) if value.is_a? Symbol @logins = {value => //} elsif value.is_a?(Hash) # Should do most inclusive regex last raise 'must be hash of symbols => regex' unless value.length > 0 && value.all? { |k, v| k.is_a?(Symbol) && v.is_a?(Regexp) } @logins = value else raise 'must be a symbol or hash' end end
secret(at = Time.now.to_i)
click to toggle source
# File lib/slots/jwt/configuration.rb, line 60 def secret(at = Time.now.to_i) @secret_keys.each do |secret_hash| return secret_hash[:secret] if at > secret_hash[:created_at] end raise InvalidSecret, 'Invalid Secret' end
secret=(v)
click to toggle source
# File lib/slots/jwt/configuration.rb, line 40 def secret=(v) @secret_keys = [{created_at: 0, secret: v}] end
secret_yaml=(file_path_string)
click to toggle source
# File lib/slots/jwt/configuration.rb, line 44 def secret_yaml=(file_path_string) secret_keys = YAML.load_file(Slots::JWT.secret_yaml_file) @secret_keys = [] secret_keys.each do |secret_key| raise ArgumentError, 'Need CREATED_AT' unless (created_at = secret_key['CREATED_AT']&.to_i) raise ArgumentError, 'Need SECRET' unless (secret = secret_key['SECRET']) previous_created_at = @secret_keys[-1]&.dig(:created_at) || Time.now.to_i raise ArgumentError, 'CREATED_AT must be newest to latest' unless previous_created_at > created_at @secret_keys.push( created_at: created_at, secret: secret ) end end