当前位置: 首页 / 百宝箱 / 正文

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

发布时间:2020-09-08 17:21:07 作者:小超越君

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://www.zhe94.com/773.html

小超越
热爱折腾,曾想着改变世界,如今只能向生活低头,寻找可口的牛奶和面包
添加站长微信作者头像
专注高品质湛江网站建设及湛江SEO优化服务 立即咨询