diff --git a/lib/jwt.rb b/lib/jwt.rb index 1aa70519..dee3aaba 100644 --- a/lib/jwt.rb +++ b/lib/jwt.rb @@ -94,6 +94,27 @@ def encode(payload, key, algorithm = 'HS256', header_fields = {}) segments.join('.') end + def decoded_segments(jwt, key = nil, verify = true, custom_options = {}, &keyfinder) + fail(JWT::DecodeError, 'Nil JSON web token') unless jwt + + options = { + verify_expiration: true, + verify_not_before: true, + verify_iss: false, + verify_iat: false, + verify_jti: false, + verify_aud: false, + verify_sub: false, + leeway: 0 + } + + merged_options = options.merge(custom_options) + + decoder = Decode.new jwt, key, verify, merged_options, &keyfinder + decoder.decode_segments + end + + def decode(jwt, key = nil, verify = true, custom_options = {}, &keyfinder) fail(JWT::DecodeError, 'Nil JSON web token') unless jwt