diff options
author | Vincent Ambo <mail@tazj.in> | 2018-09-04T09·36+0200 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2018-09-04T10·45+0200 |
commit | 37652545b47f8269d07d09657050bde533eff656 (patch) | |
tree | ab717299e73154242b7ba72a48460d162d569e81 | |
parent | b3e8f7a91f6a815c2c1787735666c623f6892feb (diff) |
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.
-rw-r--r-- | src/lib.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs index 523a9898d7a6..51fb620c6d4f 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. |