JWT Claims

“iss” (issuer)  发行人

“sub” (subject)  主题

“aud” (audience) 接收方 用户

“exp” (expiration time) 到期时间

“nbf” (not before)  在此之前不可用

“iat” (issued at)  jwt的签发时间

“jti” (JWT ID)  jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。

  /// <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;

  

JWT Claims的更多相关文章

  1. jose4j / JWT Examples

    jose4j / JWT Examples View History JSON Web Token (JWT) Code Examples Producing and consuming a sign ...

  2. JSON Web Tokens(JWT)

    现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...

  3. JSON WEB Token(JWT)

    最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...

  4. spring cloud实战与思考(五) JWT之携带敏感信息

    需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...

  5. golang简单实现jwt验证(beego、xorm、jwt)

    程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息. app.conf文件内容(可以用个beego直接读取里面的内容)写的是一个jwt的se ...

  6. 基于jwt的token验证

    一.什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519). 该token被设计为紧凑且安全的,特别适用于分布 ...

  7. springmvc的文件上传和JWT图形验证码

    相关pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commo ...

  8. springmvc文件上传AND jwt身份验证

    SpringMVC文件上传 思路:1.首先定义页面,定义多功能表单(enctype=“multipart/form-data”)2.在Controller里面定义一个方法,用参数(MultipartF ...

  9. SPA中使用jwt

    什么是jwt? JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案 JWT的工作原理 1. 是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,示例如下:{&q ...

随机推荐

  1. [AIR] NativeExtension在IOS下的开发实例 --- ANE文件的打包(三)

    来源:http://bbs.9ria.com/thread-102041-1-1.html 好了,前面的准备工作做的差不多了.此时我们应用有下面几个文件:extension.xml    CoolEx ...

  2. iPhone 移植到 iPad:

    来源:http://www.wapera.cn/ipadkaifa/71354.html iPhone移植到iPad: 方法一修改设备目标设置(普通模式:一套代码及XIB界面文件,代码分if和else ...

  3. redis 异常 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. 解决方 ...

  4. 工业网络安全 智能电网,SCADA和其他工业控制系统等关键基础设施的网络安全(总结)

    1.工业网络的安全势必是未来安全方向必须要做的一个重要的方面 工业网络的概念:简单的说就是控制控制系统的网络,其可以进行基于网络的数字通信. 关键的基础设施:包括直接操作任何系统的设施 了解工业网络的 ...

  5. 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)

    介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...

  6. 用js刷剑指offer(丑数)

    题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路 ...

  7. 微信小程序---存储本地缓存数据

    微信小程序之数据缓存 开发中常用setStorageSync来实现本地数据缓存操作 (1)点击缓存案例: <button bindtap="toStorage">存储& ...

  8. Alpha冲刺随笔七:第七天

    课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(十天冲刺) 团队名称:葫芦娃队 作业目标:在十天冲刺里对每天的任务进行总结. 随笔汇总:https://www.cnblogs ...

  9. .net框架 - Enum枚举

    概要 在C#或C++,java等一些计算机编程语言中,枚举类型是一种基本数据类型而不是构造数据类型. 在C语言等计算机编程语言中,它是一种构造数据类型. 它用于声明一组命名的常数,当一个变量有几种可能 ...

  10. HTTPS——https下的静态资源中如何使用http的地址

    前言 今天在改博皮的时候,将一些图片上传到七牛,但是引入的时候出问题了,因为七牛cnd设置的不是https域名,所以加载资源的时候导致自动转为https请求. 步骤 错误的写法 background: ...