JWT Claims
JWT Claims
“iss” (issuer) 发行人
“sub” (subject) 主题
“aud” (audience) 接收方 用户
“exp” (expiration time) 到期时间
“nbf” (not before) 在此之前不可用
“iat” (issued at) jwt的签发时间
“jti” (JWT ID) jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /// <summary> /// JSON Web Token (JWT) claims set. /// </summary> TJWTClaims = class (TJOSEBase) private const AUDIENCE_SEPARATOR = ',' ; private function GetAudience: string ; function GetExpiration: TDateTime; function GetIssuedAt: TDateTime; function GetIssuer: string ; function GetJWTId: string ; function GetNotBefore: TDateTime; function GetSubject: string ; procedure SetAudience(Value: string ); procedure SetExpiration(Value: TDateTime); procedure SetIssuedAt(Value: TDateTime); procedure SetIssuer(Value: string ); procedure SetJWTId(Value: string ); procedure SetNotBefore(Value: TDateTime); procedure SetSubject(Value: string ); function GetHasAudience: Boolean; function GetHasExpiration: Boolean; function GetHasIssuedAt: Boolean; function GetHasIssuer: Boolean; function GetHasJWTId: Boolean; function GetHasNotBefore: Boolean; function GetHasSubject: Boolean; function ClaimExists( const AClaimName: string ): Boolean; function GetAudienceArray: TArray< string >; procedure SetAudienceArray( const Value: TArray< string >); public constructor Create; virtual ; procedure SetClaimOfType<T>( const AName: string ; const AValue: T); function GenerateJWTId(ANumberOfBytes: Integer = 16): string ; property Audience: string read GetAudience write SetAudience; property AudienceArray: TArray< string > read GetAudienceArray write SetAudienceArray; property HasAudience: Boolean read GetHasAudience; property Expiration: TDateTime read GetExpiration write SetExpiration; property HasExpiration: Boolean read GetHasExpiration; property IssuedAt: TDateTime read GetIssuedAt write SetIssuedAt; property HasIssuedAt: Boolean read GetHasIssuedAt; property Issuer: string read GetIssuer write SetIssuer; property HasIssuer: Boolean read GetHasIssuer; property JWTId: string read GetJWTId write SetJWTId; property HasJWTId: Boolean read GetHasJWTId; property NotBefore: TDateTime read GetNotBefore write SetNotBefore; property HasNotBefore: Boolean read GetHasNotBefore; property Subject: string read GetSubject write SetSubject; property HasSubject: Boolean read GetHasSubject; end; |
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/11367704.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?