Class: Fernet::Verifier

Inherits:
Object
  • Object
show all
Defined in:
lib/fernet/verifier.rb

Overview

Public: verifies Fernet Tokens

Defined Under Namespace

Classes: UnknownTokenVersion

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Verifier

Internal: initializes a Verifier

opts - a hash containing

  • secret - the secret used to create the token (required)

  • token - the fernet token string (required)

  • enforce_ttl - whether to enforce TTL, defaults to Configuration.enforce_ttl

  • ttl - number of seconds the token is valid



21
22
23
24
25
26
27
28
# File 'lib/fernet/verifier.rb', line 21

def initialize(opts = {})
  enforce_ttl = opts.has_key?(:enforce_ttl) ? opts[:enforce_ttl] : Configuration.enforce_ttl
  @token = Token.new(opts.fetch(:token),
                       secret: opts.fetch(:secret),
                       enforce_ttl: enforce_ttl,
                       ttl: opts[:ttl],
                       now: opts[:now])
end

Instance Attribute Details

#enforce_ttlObject

Returns the value of attribute enforce_ttl.



12
13
14
# File 'lib/fernet/verifier.rb', line 12

def enforce_ttl
  @enforce_ttl
end

#tokenObject (readonly)

Returns the value of attribute token.



11
12
13
# File 'lib/fernet/verifier.rb', line 11

def token
  @token
end

#ttlObject

Returns the value of attribute ttl.



12
13
14
# File 'lib/fernet/verifier.rb', line 12

def ttl
  @ttl
end

Instance Method Details

#dataObject

Deprecated: returns the token’s message



44
45
46
47
# File 'lib/fernet/verifier.rb', line 44

def data
  puts "[WARNING] data is deprected. Use message instead"
  message
end

#inspectObject Also known as: to_s

Public: String representation of this verifier, masks the secret to avoid

leaks


51
52
53
# File 'lib/fernet/verifier.rb', line 51

def inspect
  "#<Fernet::Verifier @secret=[masked] @token=#{@token} @message=#{@message.inspect} @ttl=#{@ttl} @enforce_ttl=#{@enforce_ttl}>"
end

#messageObject

Public: Returns the token’s message



39
40
41
# File 'lib/fernet/verifier.rb', line 39

def message
  @token.message
end

#valid?Boolean

Public: whether the verifier is valid. A verifier is valid if it’s token

is valid.

Returns a boolean set to true if the token is valid, false otherwise

Returns:

  • (Boolean)


34
35
36
# File 'lib/fernet/verifier.rb', line 34

def valid?
  @token.valid?
end