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,从而回避重放攻击。
/// <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的更多相关文章
- jose4j / JWT Examples
jose4j / JWT Examples View History JSON Web Token (JWT) Code Examples Producing and consuming a sign ...
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...
- JSON WEB Token(JWT)
最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...
- spring cloud实战与思考(五) JWT之携带敏感信息
需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...
- golang简单实现jwt验证(beego、xorm、jwt)
程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息. app.conf文件内容(可以用个beego直接读取里面的内容)写的是一个jwt的se ...
- 基于jwt的token验证
一.什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519). 该token被设计为紧凑且安全的,特别适用于分布 ...
- springmvc的文件上传和JWT图形验证码
相关pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commo ...
- springmvc文件上传AND jwt身份验证
SpringMVC文件上传 思路:1.首先定义页面,定义多功能表单(enctype=“multipart/form-data”)2.在Controller里面定义一个方法,用参数(MultipartF ...
- SPA中使用jwt
什么是jwt? JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案 JWT的工作原理 1. 是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,示例如下:{&q ...
随机推荐
- linux运行级
Linux有0到6个级别,分别对应/etc/rcN.d,N对应7个级别 各运行级详解 0.关机 1.单用户模式,类似于Windows安全模式 2.多用户模式 3.完整的多用户模式.标准运行级 4.不用 ...
- mysql审计插件-记录所有sql语句
https://www.58jb.com/html/160.html https://www.jianshu.com/p/a0e0aec3cb6f MySQL审计工具Audit Plugin安装使用 ...
- Android笔记(六十七) 自定义控件
实际编程中,系统提供的控件往往无法满足我们的需求,一来是样子丑陋,二来是一些复杂的组合需要多次使用的话,每次都写一堆控件的组合会很耗费时间,所以我们将这些组件的组合自定义为一个新的控件,以后使用的时候 ...
- 邮件学习过程中关于request.POST的使用
今天的话主要的精力都集中在邮件系统demo的实现,因为自己个人技术有限,所以做出来的相当简陋,在其中碰到的问题其实也是比较多的,对于基于django的邮件相对来说比较容易,然后就是在提交数据,获取po ...
- 网络时间同步服务和chrony
时间同步和chrony 时间同步:多主机协作工作时,各个主机时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等, 利用NTP(Network Time Protocol) ...
- http通信示例Httpclient和HttpServer
本示例源于为朋友解决一个小问题,数据库到服务器的数据传输,由于本人能力有限,暂时将它理解为从数据库中获取数取表数据,实际上有可能是文件或者其他形式的数据,不过原理都得用流传输, 首先httpclien ...
- oracle更改数据库字符集
shutdown immediate; startup mount; alter system enable restricted session; alter system set job_queu ...
- ISCC之web2
Php代码审计 PHP代码 <?php error_reporting(0); require 'flag.php'; $value = $_GET['value']; $password = ...
- Lenet5设计理解——咬文嚼字系列
最近在看lecun大神的这篇经典文章:“Gradient-Based Learning Appliedto Document Recognition”,文章较老,但是对于lenet5的一些基础概念讲解 ...
- 用js刷剑指offer(把数组排成最小的数)
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路 对ve ...