一、JWT简介
JSON Web Token(JWT)是一个开放的标准(RFC 7519),它定义了一个紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息 。由于此信息是经过数字签名的,因此可以被验证和信任 。
更多信息可以查看官网:https://jwt.io/introduction/
二、JWT认证和session认证的区别
- session认证
- JWT认证
三、JWT认证流程
文章插图
认证流程如下:
- 用户使用账号和密码发出post请求;
- 服务器使用私钥创建一个jwt;
- 服务器返回这个jwt给浏览器;
- 浏览器将该jwt串在请求头中像服务器发送请求;
- 服务器验证该jwt;
- 返回响应的资源给浏览器 。
先来看一张JWT的信息的截图:
文章插图
从上图可以看到,JWT含有三部分:头部(header)、载荷(payload)、签名(signature) 。
- 头部(header)
- 声明类型,这里是JWT
- 声明加密的算法,通常直接使用Hmac SHA256
头部一般使用base64加密,加密后密文:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
- 载荷(payload)
- iss:该JWT的签发者
- sub: 该JWT所面向的用户
- aud: 接收该JWT的一方
- exp(expires): 什么时候过期,这里是一个Unix时间戳
- iat(issued at): 在什么时候签发的
- 签名(signature)
三个部分通过.连接在一起就是我们的 JWT 了,所以我们生成的JWT如下:
注意:密钥就是用来进行JWT的签发和JWT的验证,所以,它就是你服务端的私钥,在任何场景都不应该泄露出去 。
五、JWT使用场景
JWT主要使用场景如下:
- 授权
- 信息交换:JSON
【一分钟带你了解JWT认证】
推荐阅读
- 同样是火龙果,红心的和白心的有什么区别,一起来了解下
- 如何了解太极拳名人名家带你领略太极之美
- 来了解下红茶的历史渊源吧!
- 双脚跳绳吉尼斯纪录一分钟多少个? 岑小林在跳绳世界杯上打破世界纪录
- 一文全面了解IPv6
- 你了解什么是黑客吗?黑客到底有多厉害,盗号只是皮毛
- IPv4和IPv6基本知识点专题分享,带你一分钟全部掌握
- Python 带你采集抖音无水印视频内容,把你喜欢的视频保存
- 汽车油箱盖处三大用车常识, 你了解多少?
- 小青柑普洱茶是生普,带你认识小青柑普洱茶的养生功效