
jwt
[toc]
什么是json 网络令牌
json web token (jwt) 是一个开放标准,它定义了紧凑且自包含的方式, 用于在各方之间作为json 对象安全的传输信息。 该信息是可以被验证和信任的, 因为它是经过数字签名的。
紧凑:就是网络传输快,体积小
自包含:可以包含一些自定义的数据,且信息公开。
json 对象: 归根结底它还是一种json 对象
安全:利用各种算法进行的签名
签名:就是加密, 作用就是用来验证请求,防止请求被篡改。
什么时候使用jwt
- 授权
- 信息交换
授权
- 用户登录,后续的请求都带上jwt , 用来控制路由,资源,服务。
- 单点登录
因为jwt 的开销很小,并且能够轻松的跨域
信息交换
- 接口请求的时候带上: 验证是否是对方发起的。
什么是jwt 结构
jwt由(.)分割的三个部分组成: header.payload.signature
例如:xxx.yyy.zzz
header 标题
标题有两部分组成: type ,alg(加密方式)
例如:
{"alg":"HS256","typ":"JWT"}
然后把json base64Url 编码
payload 负载
令牌的第二部分是负载,其中包含声明。声明是关于实体(通常是用户)和附加数据的声明。共有三种类型的声明:注册声明、公共声明和私人声明。
- 注册声明: 官方推荐的 iss (发行者),exp(到期时间), sub(主题),aud(受众)
- 公共声明
- 私人
{ "sub": "1234567890", "name": "John Doe", "admin": true }
然后把json base64Url编码 形成jwt 第二部分
sign 签名
签名你必须获取到header ,payload 的数据并使用header 指定的算法对其签名
例如:
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
然后并将把header.payload.sign 拼接起来得到jwt.
评价
排名
25
文章
22
粉丝
5
评论
7
C# string 和String 的区别
剑轩 : 所以区别主要在哪里呢....
markdown 初步学习
剑轩 : 哇哦,真的喜欢你这个个性签名,很不错
pythoic 写法
剑轩 : 新年快乐啊
python拼接字符串八种
剑轩 : 手动点赞+1
python拼接字符串八种
雨雨雨雨雨辰 : 手动点赞
pythoic 写法
瑾语 : 你好
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术