Class: Logi::Commands::Token
- Inherits:
-
Thor
- Object
- Thor
- Logi::Commands::Token
- Defined in:
- lib/logi/commands/token.rb
Overview
JWT inspection. Signature verification fetches JWKS from the server.
Instance Method Summary collapse
Instance Method Details
#inspect(jwt) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/logi/commands/token.rb', line 10 def inspect(jwt) pastel = Pastel.new segments = jwt.split(".") if segments.size != 3 abort pastel.red("Not a valid JWT (expected header.payload.signature).") end header_json = JSON.parse(Base64.urlsafe_decode64(segments[0] + "=" * ((4 - segments[0].size % 4) % 4))) payload_json = JSON.parse(Base64.urlsafe_decode64(segments[1] + "=" * ((4 - segments[1].size % 4) % 4))) puts pastel.cyan("Header:") puts JSON.pretty_generate(header_json) puts pastel.cyan("\nPayload:") puts JSON.pretty_generate(payload_json) if [:verify] verify_with_jwks(jwt, header_json, payload_json) end end |