什么是JWT(JSON Web Tokens)?
jwt(JSONwebtoken )是一种非常轻量级的规格,可以使用JWT在用户和服务器之间传递安全可靠的信息。
为什么冒出个JWT(JSON Web Tokens)?有什么用,解决什么问题?
传统的session、cookies有以下明显的缺点。a、cookies安全性差,攻击者可以通过获取本地cookies进行诈骗,也可以利用cookies进行CSRF攻击。
b、使用cookies时,在多个域名下,存在域名之间的问题。
c、session需要在一定的时间内存放在服务器端,因此在有大量用户的情况下,服务器端的性能也会大幅降低。
d、多服务器的情况下需要共享session。
2 .为了解决这些问题,出现了JWT。 session、cookies上面列举的缺点消失了,不容易被攻击者利用,提高了安全性。 利用Http传输token,没有域间问题。 信息分散存储在客户端,减少了服务器端的占用资源,也消除了会话共享问题。
要了解
JWT(JSON Web Tokens)是如何工作的?
的结构,首先来看看JWT的结构
JWT结构
JWT实际上是字符串,由头部(HEADER )、载荷(PAYLOAD )、签名) VERIFY SIGNATURE三部分组成。
头
标头用于描述有关该JWT的最基本信息,如其类型和用于签名的算法。
{
' alg': 'HS256 ',
:日本足球俱乐部
}
这是头部的样本,说明了token的类型是JWT,使用的算法是HS256
负荷
载荷用于存储数据,可以包含或自定义JWT标准字段。 列举一些标准字段和含义。
iss: JWT的发行者
适用于sub: JWT的用户
aud:接收JWT的一侧
EXP (EXP ) :什么时候过期
IAT(issuedat ) :什么时候发行
{
'辅: ' 1234567890 ',
'名称' : '约翰德',
' iat': 1516239022
}
这是一个负载示例,其中包含三个字段,表示将包含由1516239022(UNIX时间戳)发布的name=John Doe的token发送给1234567890用户。
签名
用加密算法加密标头和加载代码的连接内容,加密过程使用特定的私钥。
HMACSHA256 (
base64 Urlencode (头) '.
base64urlencode(payload )表示,
) secret基本64编码
2.JWT的工作流程:
客户端使用帐户密码登录
登录成功后,服务器端返回JWT
客户端再次发出其他请求时,带上JWT
服务器端接收JWT并验证签名的有效性。
JWT工作流
好了,JWT就讲到这里,下次我们实战吧。喜欢的朋友点击关注、转发哦。
。