Class: FreshJwt::Validator
- Inherits:
-
Object
- Object
- FreshJwt::Validator
- Extended by:
- Dry::Initializer
- Defined in:
- lib/fresh_jwt/validator.rb
Instance Method Summary collapse
- #call(token) {|valid_by_store? token| ... } ⇒ Object
- #decode(token) ⇒ Object
- #valid_by_store?(token) ⇒ Boolean
- #valid_payload?(payload) ⇒ Boolean
Instance Method Details
#call(token) {|valid_by_store? token| ... } ⇒ Object
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.]) end end |
#valid_by_store?(token) ⇒ 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
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 |