php jwt设置有效期,07-如何设置JWT的过期时间
参考页面
要想设置JWT的过期时间。需要在payload中增加 exp 此字段。这个字段是JWT内部约定的。用来表示过期时间{ "iss" :"http://example.org", //非必须。issuer 请求实体,可以是发起请求的用户的信息,也可是jwt的签发者。
"iat" : 1356999524, //非必须。issued at。 token创建时间,unix时间戳格式
"exp" :"1548333419", //非必须。expire 指定token的生命周期。unix时间戳格式
"aud" : "http://example.com", //非必须。接收该JWT的一方。
"sub" : "jrocket@example.com", //非必须。该JWT所面向的用户
"nbf" : 1357000000, //非必须。not before。如果当前时间在nbf里的时间之前,则Token不被接受;一般都会留一些余地,比如几分钟。
"jti" :'222we', //非必须。JWT ID。针对当前token的唯一标识
"GivenName" : "Jonny", // 自定义字段
"Surname" : "Rocket", // 自定义字段
"Email" : "jrocket@example.com", // 自定义字段
"Role" : ["Manager", "Project Administrator"] // 自定义字段 }
下面我们修改 代码
增加一个exp// POST api/values
[HttpPost]
public string Post(string username,string pwd)
{
//假设用户名为"admin",密码为"123"
if (username == "admin" && pwd == "123")
{
var payload = new Dictionary
{
{ "Name",username },
{ "exp", DateTimeOffset.UtcNow.AddSeconds(2).ToUnixTimeSeconds() } //两秒后过期
};
return JwtHelp.SetJwtEncode(payload);
}
else
{
return "-1";
}
}
之后 载器请求 就会抛出如上异常
我们应该渠捕捉这些异常///
/// 根据jwtToken 获取实体
///
/// jwtToken
///
public static AccountInfo GetJwtDecode(string token,out string message)
{
message = string.Empty;
try
{
IJsonSerializer serializer = new JsonNetSerializer();
IDateTimeProvider provider = new UtcDateTimeProvider();
IJwtValidator validator = new JwtValidator(serializer, provider);
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IAlgorithmFactory algorithmFactory = new HMACSHAAlgorithmFactory();
IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithmFactory);
var accountInfo = decoder.DecodeToObject(token, secret, verify: true);//token为之前生成的字符串
return accountInfo;
}
catch (TokenExpiredException)//如果当前时间大于负载中的过期时间(负荷中的exp),引发Token过期异常
{
message = "Token已经过期了!";
}
catch (SignatureVerificationException)//如果签名不匹配,引发签名验证异常
{
message = "Token签名不正确!";
}
return null;
}// GET api/values/5
[HttpGet("{token}")]
public ActionResult Get(string token)
{
string error = string.Empty;
var info = JwtHelp.GetJwtDecode(token,out error);
if (info != null)
{
return info.Name;
}
else
{
return error;
}
}
php jwt设置有效期,07-如何设置JWT的过期时间相关推荐
- 小程序token有效期_微信小程序token过期时间后重新获取-微信小程序过期恢复步骤-微信小程序怎么找...
1. 首先先封装个公用的jsclassConfig{constructor(){}}Config.restUrl'https://wx.knowdao.com';export{Config};2. 再 ...
- 什么是JWT?新手5分钟入门JWT的使用
1 什么是JWT JSON Web Token(JWT)是一种开放标准(RFC7519),它定义了一种紧凑而独立的方式,用于在各方之间作为JSON对象安全地传输信息.此信息是可以验证和信任的,因为它是 ...
- Redis中字符串string数据类型(保存(设置键值、过期时间、设置多个键值、追加值)、获取(获取单一键值、获取多个键值))
字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的V ...
- RabbitMQ 设置消息的TTL(过期时间)
我们在RabbitMQ中发布消息时,在代码中有两种方法设置某个队列的消息过期时间: 1.针对队列来说,可以使用x-message-ttl参数设置当前队列中所有消息的过期时间,即当前队列中所有的消息过期 ...
- openssl命令查看证书有效期_kubeadm初始化k8s集群延长证书过期时间
前言 kubeadm初始化k8s集群,签发的CA证书有效期默认是10年,签发的apiserver证书有效期默认是1年,到期之后请求apiserver会报错,使用openssl命令查询相关证书是否到期. ...
- 29.Jwt集成(3):token设置过期时间、异常判断
29.Jwt集成(3):token设置过期时间.异常判断 参考文章: (1)29.Jwt集成(3):token设置过期时间.异常判断 (2)https://www.cnblogs.com/hualou ...
- API接口之JWT设置token过期时间(二)
目录 1.什么是Jwt 2.token是什么 3.为什么要使用token 4.如何实现token 5.JWT的简单案例 6.API接口token案例 6.1 token的创建 6.2 用户验证流程 7 ...
- .NetCore JWT token过期时间设置
一.生成token public string CreateToken(UserDto input) { var tokenHandler = new JwtS ...
- springboot 集成jwt设置过期时间_传说中的jwt,我们来征服一下
原创:猿逻辑,欢迎分享,转载请保留出处. 本文的完整示例代码,见github仓库.小q只在文中介绍最关键的代码块. https://github.com/yuanluoji/purestart-spr ...
最新文章
- android圆形旋转菜单,而对于移动转换功能支持
- ELK教程2:Kibana的安装
- python post请求 上传图片_利用python模拟实现POST请求提交图片的方法
- Android小项目源码汇总
- 146. LRU Cache
- ByteBuf主要继承关系图
- 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能
- HttpServletResponse中sendError与setStatus的区别
- 双霖度盘下载器(第三方百度网盘不限速下载工具)
- 开头的单词_为什么以“S”开头的单词最多?| 英汉比较教学法·语音思维No.16...
- TCP/IP网络编程项目式教程(微课版)
- 微信公众号订阅号与微信服务号有什么不同
- 淘宝/天猫API:upload_img-上传图片到淘宝
- Android Provision源码分析
- vite按需引入 Ant Design Vue 3.0
- 为CIFAR图片分类模型添加BN
- protractor 添加测试报告
- Oracle分区表的使用
- ITIL学习笔记——核心流程之:容量管理
- python爬虫案例:采集股票数据并制作可视化柱图~
热门文章
- access身份证号掩码_Access输入掩码说明
- 登陆qq出现计算机丢失msvcp140.dll,缺少msvcp140.dll怎么办?msvcp140.dll丢失解决方法...
- venue11 Android,ebay购入dell 戴尔 venue11 pro 平板电脑
- 计算机excel上机实训指导,上机实训指导手册——利用Excel进行数据分组和制作统计图表...
- Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
- PTA 7-1 宿舍谁最高?(20分)
- python进阶 - day1
- 关于显示webpack不是内部或外部命令问题的解决方法
- nginx 反向代理(完成图片回显示效果)
- part实现实现单个(上传图片和文件上传)