Class: CommandTower::Jwt::Decode

Inherits:
Object
  • Object
show all
Defined in:
app/services/command_tower/jwt/decode.rb

Defined Under Namespace

Classes: DecodeOutcome

Constant Summary collapse

ALGORITHM =
"HS256"

Class Method Summary collapse

Class Method Details

.call(token:) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/services/command_tower/jwt/decode.rb', line 27

def self.call(token:)
  data = JWT.decode(token, CommandTower.config.jwt.hmac_secret, true, { algorithm: ALGORITHM })

  DecodeOutcome.success(
    payload: data[0].with_indifferent_access,
    headers: data[1].with_indifferent_access
  )
rescue JWT::DecodeError => e
  Rails.logger.warn { "[#{name}] Failed to decode token: #{e.class.name}" }

  DecodeOutcome.failure(msg: "Invalid Token")
end