什么是token,为什么需要token

1.为什么需要token

  • 随着互联网的发展,为了更安全,以及更好的用户体验,逐渐产生了token这个技术方案
  • 之所以使用token是因为http/https协议本身是无状态的,不能进行信息的存储 (cookie可以进行信息存储,但存在一些限制)
  • token的作用是为了加强用户信息安全性,而添加的一层验证,去验证用户是否已经登陆,以及是否是用户本身在登陆,进行操作

2.token原理

  • token的本质就是一段加密的字符串
  • 通过服务器将加密的信息颁发给前端,前端每次请求携带该认证信息,来确保当前的用户是用户本身,防止有人冒充该用户
  • token就像一把钥匙,由服务器进行颁发给用户,持有正确的钥匙就能开正确的锁,持有的钥匙不正确,就无法打开对应的锁
  • 不需要进行存储,只需要每次服务器根据token进行解密,并验证信息是否正确以及是否过期即可
// 原始信息 每个用户的用户信息都不同,过期时间根据设置时间与当前时间对比决定是否让用户重新登录
const token = {
  过期时间:'2022-02-02 02:02:02',
  当前用户:'Tom',
}
//  加密后 一段无规律的字符串 可以通过特定的运算重新恢复成为 token
const tokenSecret = 'ASD324235SFETWE' 

3.无感刷新流程 refreshtoken

3.1 refreshtoken 的意义

  • refreshtoken 的存在是为了让用户信息更加安全,并且让用户体验更加而采取的
  • 试想,如果为了安全设置token每30s刷新一次,那么也就意味着用户每30s就需要登录一次,体验感很差
  • 但是如果将token过期时间设置为2小时,则安全性将大大降低(即可能存在token被人获取,如果刷新时间间隔短,意味着被利用的几率就会降低)
  • 如果方案更改为用户首次登录,发放给用户token与refreshToken,token真正过期时间为2小时,每30分钟需要通resfreshtoken去获取最新的token重新设置,并且要refreshtoken也会改变
  • 这样做就能即提高安全性,也能保证用户体验感
  • 图片说明
    token.原理png.png
posted @ 2024-04-15 10:38  story.Write(z)  阅读(154)  评论(0编辑  收藏  举报