Token流程是什么?怎么解决Token超时问题?

作者:admin 发布时间:2020-09-08 17:21:07 浏览:1582次
Token机制虽说很早就出现了,但也就是最近十年内才广泛应用的,而很多新手对于Token和Session何时使用区分不了,虽说听说过Token但不知道其原理是啥以及如何使用。

Token是为了解决什么问题而生的?

在Token机制之前,服务器端验证客户端请求是否合法主要是靠Cookie+Session机制来实现的。服务器端会为每个会话都生成一个Session,在高并发场景下会导致Session文件越来越多,不利于管理。 而Token是服务器端生成的一串加密字符串(具有生命周期),分配给客户端作为令牌使用,Token的好处就是减轻了服务器端的压力,因为Token是由客户端存储的,而且是无状态的。 Token的流程,可以通过分析登录的流程、退出的流程、置换token的流程分别讨论?

登录的流程

  1. 用户发送登录请求
  2. 认证系统验证登录-查询数据库用是存在该用户
  3. 如果该用户存在,则生成Token存入Redis中,并将该Token返回客户端
  4. 如果该用户不存在则提示登录失败

验证Token

客户端
  • 将Token key附加至header
服务端
  • 从header中取出Token key
  • 通过Token key和Redis中的相关Token信息进行匹配

退出请求流程

  1. 前端发送退出请求
  2. 认证系统验证token信息-从Redis中查询相关Token信息
  3. 如果token无效,提示前端换取token失败
  4. 如果token有效,删除该token并提示前端退出成功

置换token的流程

以下讨论的就是token超时的解决方案 先说下后端处理流程:
  1. 前端请求置换token
  2. 认证系统验证去redis验证相关redis信息
  3. token无效,则置换失败
  4. token有效,则从redis删除相关redis,并返回前端新的token
置换token的前端处理流程
  1. 前端在登录成功后拿到token设置到cookie中
  2. 请求业务接口时获取token,并判断是否到了该换取token的时间段了
  3. 如果可以调用置换token接口,重新生成token,返回前端设置到cookie中
以上就是token的请求流程,及token超时的解决方案!!

如需转载请保留本文出处: https://zhe94.com/773.html

上一篇:Best Trace 路由跟踪工具和专业级查ip网站
下一篇:PHP对称加密算法-AES加密解密的方法