Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
JWT.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4
5#include "Stroika/Foundation/Characters/String2Int.h"
6
8
9 /*
10 ********************************************************************************
11 ********************************** JSON::JWT ***********************************
12 ********************************************************************************
13 */
14 inline Mapping<String, String> JWT::GetHeaderClaims () const
15 {
16 return fHeaderClaims_;
17 }
19 {
20 return fPayloadClaims_;
21 }
22 inline optional<String> JWT::GetIssuer () const
23 {
24 return fPayloadClaims_.Lookup (JWTRegisteredClaims::kIssuer);
25 }
26 inline optional<String> JWT::GetSubject () const
27 {
28 return fPayloadClaims_.Lookup (JWTRegisteredClaims::kSubject);
29 }
30 inline optional<String> JWT::GetAudience () const
31 {
32 return fPayloadClaims_.Lookup (JWTRegisteredClaims::kAudience);
33 }
34 inline optional<DateTime> JWT::GetExpirationTime () const
35 {
36 if (auto i = fPayloadClaims_.Lookup (JWTRegisteredClaims::kExpirationTime)) {
37 return DateTime{Characters::String2Int<time_t> (*i)};
38 }
39 return nullopt;
40 }
41 inline optional<DateTime> JWT::GetNotBefore () const
42 {
43 if (auto i = fPayloadClaims_.Lookup (JWTRegisteredClaims::kNotBefore)) {
44 return DateTime{Characters::String2Int<time_t> (*i)};
45 }
46 return nullopt;
47 }
48 inline optional<Range<DateTime>> JWT::GetValidFor () const
49 {
50 return Range<DateTime>{GetNotBefore ().value_or (DateTime::kMin), GetExpirationTime ().value_or (DateTime::kMax)};
51 }
52 inline optional<DateTime> JWT::GetIssuedAt () const
53 {
54 if (auto i = fPayloadClaims_.Lookup (JWTRegisteredClaims::kIssuedAt)) {
55 return DateTime{Characters::String2Int<time_t> (*i)};
56 }
57 return nullopt;
58 }
59 inline optional<String> JWT::GetJWTID () const
60 {
61 return fPayloadClaims_.Lookup (JWTRegisteredClaims::kJWTID);
62 }
63
64}
nonvirtual Mapping< String, String > GetPayloadClaims() const
this is probably what you want to look at
Definition JWT.inl:18
nonvirtual optional< Range< DateTime > > GetValidFor() const
combined exp and nbf, to produce a datetime range the token is to be considered valid
Definition JWT.inl:48
constexpr string_view kIssuedAt
The "iat" (issued at) claim identifies the time at which the JWT was issued.
Definition JWT.h:61
constexpr string_view kSubject
The "sub" (subject) claim identifies the principal that is the subject of the JWT.
Definition JWT.h:39
constexpr string_view kExpirationTime
The "exp" (expiration time) claim identifies the expiration time on or after which the JWT MUST NOT b...
Definition JWT.h:50
constexpr string_view kAudience
The "aud" (audience) claim identifies the recipients that the JWT is intended for.
Definition JWT.h:44
constexpr string_view kIssuer
The "iss" (issuer) claim identifies the principal that issued the JWT.
Definition JWT.h:34
constexpr string_view kJWTID
The "jti" (JWT ID) claim provides a unique identifier for the JWT.
Definition JWT.h:66
constexpr string_view kNotBefore
The "nbf" (not before) claim identifies the time before which the JWT MUST NOT be accepted for proces...
Definition JWT.h:56