From 37652545b47f8269d07d09657050bde533eff656 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 4 Sep 2018 11:36:36 +0200 Subject: [PATCH] feat: Introduce ValidJWT type to represent validated & decoded JWT Introduces a new struct type which contains the token's headers and claims as JSON values. This is constructed by validating a token and allows library users to deal with the deserialised values as they please. --- src/lib.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 523a9898d..51fb620c6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -115,6 +115,24 @@ impl JWKS { /// 7519](https://tools.ietf.org/html/rfc7519). pub struct JWT (String); +/// Representation of a decoded and validated JSON Web Token. +/// +/// Specific claim fields are only decoded internally in the library +/// for validation purposes, while it is generally up to the consumer +/// of the validated JWT what structure they would like to impose. +pub struct ValidJWT { + /// JOSE header of the JSON Web Token. Certain fields are + /// guaranteed to be present in this header, consult section 5 of + /// RFC7519 for more information. + pub headers: Value, + + /// Claims (i.e. primary data) contained in the JSON Web Token. + /// While there are several registered and recommended headers + /// (consult section 4.1 of RFC7519), the presence of no field is + /// guaranteed in these. + pub claims: Value, +} + /// Possible token claim validations. This enumeration only covers /// common use-cases, for other types of validations the user is /// encouraged to inspect the claim set manually.