Class: FreshJwt::Validator

Inherits:
Object
  • Object
show all
Extended by:
Dry::Initializer
Defined in:
lib/fresh_jwt/validator.rb

Instance Method Summary collapse

Instance Method Details

#call(token) {|valid_by_store? token| ... } ⇒ Object

Yields:

  • (valid_by_store? token)


10
11
12
13
14
# File 'lib/fresh_jwt/validator.rb', line 10

def call(token)
  yield valid_by_store? token
  payload, _ = yield decode token
  valid_payload? payload  
end

#decode(token) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/fresh_jwt/validator.rb', line 26

def decode token
  begin 
    result = JWT.decode(token, secret, true, {algorithm: algorithm})
    Success(result)
  rescue JWT::VerificationError, JWT::DecodeError => e
    Failure(decode_error: ["Cannot validate", e.message])
  end
end

#valid_by_store?(token) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
19
20
21
22
23
24
# File 'lib/fresh_jwt/validator.rb', line 16

def valid_by_store? token
  #access_token = token_repo.find_by_token(token)
  #if access_token.expired_at > Time.now.to_i      
  if true 
    return Success()
  else
    return Failure(validator: :invalid_by_store)
  end
end

#valid_payload?(payload) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
39
40
41
# File 'lib/fresh_jwt/validator.rb', line 35

def valid_payload? payload
  if payload["exp"] > Time.now.to_i
    Success()
  else
    Failure(valid_payload: false)
  end      
end