首页 > 编程知识 正文

大名鼎鼎的样子(188tokens)

时间:2023-05-03 15:32:13 阅读:93656 作者:3636

什么是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就讲到这里,下次我们实战吧。喜欢的朋友点击关注、转发哦。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。