Token与JWT

用Token形式记录登录态
Token是将用户信息编码后通过响应报文传给前端,之后每一次请求,请求报文中都会带有这段编码信息,后端通过解码获得用户信息,这个方法也称为JWT(Json Web Token)

JWT由三部分组成

  1. Header,通常是一个JSON对象
{
	"alg": "HS256",
	"typ": "JWT"
}

alg属性代表进行加密的签名的算法,默认是HS256
type属性代表这个令牌的类别

  1. Payload,用于存放实际需要传输的数据,JWT官方规定的字段如下:
iss:签发人
exp:过期时间
sub:主题
aud:受众
nbf:生效时间
iat:签发时间
jti:编号

也允许我们自定义一些字段(比如:用户名,密码)

  1. Signature
    用于对前两部分的数据进行签名,防止数据篡改。由服务端定义生成一个密钥,然后将这三个部分进行签名算法加密,连接成一个字符串,通过响应报文发送给客户端。

问题1: 假设我登录了某网站,下次再打开页面时,还是登录状态,是如何记录我的登录状态的呢?

可以通过token,cookie里面access token和refresh token。access token有过期时间,如果过期了就用refresh token申请新的access token,如果refresh token再过期就要重新登录。
但看了几个网站,好像都不是用token实现的,csdn好像还是session。

问题2: 我在搜狗浏览器上登录了牛客网,然后我又在谷歌浏览器登录了,然后搜狗这边就会下线,如何实现?
猜想:维护一个用户的在线列表容器,

问题3: 同一个浏览器,登录多个用户账号,刷新后会更新为最后一个登录的用户,为什么,如何实现同一个浏览器可以登录多个用户账号?

参考资料

cookie、session、token与用户登录态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值