JWT是个啥?JWT的原理和应用

JWT简介

JWT:Json Web Token,是基于Json的一个公开规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息,他的两大使用场景是:认证和数据交换

使用起来就是,由服务端根据规范生成一个令牌(token),并且发放给客户端。此时客户端请求服务端的时候就可以携带者令牌,以令牌来证明自己的身份信息。

作用:类似session保持登录状态 的办法,通过token来代表用户身份。

JWT生成

在这里插入图片描述

JWT校验

在这里插入图片描述

一些问题

token到底生成什么样最好?(规则),每个用户要唯一
token返回给客户端之后,服务端还要保存吗?
校验token时,怎么保证数据并没有被黑客拦截并篡改?(安全)
oken颁发给客户端之后,要不要有过期时间?
多次登录生成的token都是一样的吗?都是可用的吗?

JWT规则详解

一个JWT实际上就是一个字符串,它由三部分组成:头部、载荷与签名 header.payload.signature

一个正常的token为: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjYyNywiZXhwIjoxNTcwMDE0ODg1fQ.vPbQh4syxNCzkKXKPSM93LzzLqoJdzPDNeKz8tz9cFM4NzhIOdPrJcH2DG-9-9MCUufCgrAhhGjuo85GKV4bOQ

在这里插入图片描述

JWT令牌的优点

jwt基于json,非常方便解析
可以再令牌中自定义丰富的内容,易扩展(payload可以扩展)
通过签名,让JWT防止被篡改,安全性高
资源服务使用JWT可不依赖认证服务即可完成授权

问题解答

a、token到底生成什么样最好?(规则),每个用户要唯一

三部分组成:头部、载荷与签名 header.payload.signature

b、token返回给客户端之后,服务端还要保存吗?

服务端不需要保存

c、校验token时,怎么保证数据并没有被黑客拦截并篡改?(安全)

signature中有私钥来进行签名,可以保证安全性

d、token颁发给客户端之后,要不要有过期时间?

需要设置token过期时间

e、多次登录生成的token都是一样的吗?都是可用的吗?

可以再payload加上时间戳,来保证每次生成的token都不一样,都是可用的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值