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 ...
随机推荐
- mysql 的使用
1. 安装 https://dev.mysql.com/downloads/mysql/ 2. 配置 $ vim ~/.bash_profile $ export PATH=$PATH:/usr/lo ...
- C++Primer第五版 练习8.6答案详解
重写7.1.1节书店程序(第299页),从文件中读取一个交易记录.将文件名作为一个参数传递给main. 本题所需源文件如下: Sales_data.h文件: #pragma once #include ...
- yum源仓库的三种搭建方式
yum源的三种搭建方式 一. 本地yum仓库的搭建 1.1.获取软件包资源 将iso镜像挂载在本地目录中,此次挂载目录为/var/www/html/repo/,此目录本身不存在,需要创建.软件宝资源 ...
- react native jpush跳转页面不成功解决方法
在点击事件时加入如下红色代码即可 import JPushModule from 'jpush-react-native'; ... componentDidMount() { // 新版本必需写回调 ...
- ubuntu---画图工具(类似win中的画图软件)
参考 https://zhidao.baidu.com/question/622412096845238452.html https://jingyan.baidu.com/article/6525d ...
- pdftk - handy tool for manipulating PDF 免费的pdf合并工具
Linux pdf合并的工具 安装工具 $ sudo apt-get install pdftk 使用 $ pdftk *.pdf cat output all-in-one.pdf &&am ...
- python3 queue队列
一.queue队列 1.python3中的队列模块是queue,不是Queue 2.一般涉及到同步,多线程之类用到队列模块 3.定义了 queue.Queue 类,以及继承它的 queue.LifoQ ...
- idea的基础设置
1. 在idea.exe.vmoptions文件里,如图进行修改即可,, 优化的原理就是调用更多的运行内存来加载他,所以4G的话本身会不够,就会造成其他应用很卡. 2. 下面是进行一些基本的配置 ...
- 【测试用例工具】TestLink教程:一份完整指南(转)
转自:https://blog.csdn.net/cjtxzg/article/details/80498226 TestLink教程:一份完整指南1 TestLink的优点 登录到TestLink ...
- com.alibaba.fastjson把JSONObject转换为Map<String, String>对象
https://www.cnblogs.com/fomeiherz/p/6351287.html JSONObject obj = new JSONObject();{obj.put("ke ...