最新消息: 新版网站上线了!!!

Token流程是什么?怎么解决超时问题的?靠Cookie+Session机制

Token机制虽说很早就出现了,但也就是最近十年内才广泛应用的,而很多新手对于Token和Session何时使用区分不了,虽说听说过Token但不知道其原理是啥以及如何使用。

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

在Token机制之前,服务器端验证客户端请求是否合法主要是靠Cookie+Session机制来实现的。服务器端会为每个会话都生成一个Session,在高并发场景下会导致Session文件越来越多,不利于管理。

而Token是服务器端生成的一串加密字符串(具有生命周期),分配给客户端作为令牌使用,Token的好处就是减轻了服务器端的压力,因为Token是由客户端存储的,而且是无状态的。

Token超时问题如何解决?

1559659651922234.png

服务器端生成的Token是有生命周期的(过期时间),如果我们拿着已过期的Token去服务器端验证肯定是无法通过的,所以我们要在Token过期之前主动更新Token,方案如下:

1、客户端存储Token时要记录Token的过期时间

客户端拿到服务器生成返回的Token后,需要将Token临时存储起来(SessionStorage、LocalStorage),然后客户端定时检测Token是否已过期,如果过期了则主动向授权服务器重新发起认证请求。

2、由服务器端主动通知客户端进行Token更新

客户端每次的请求中都会带上Token,服务器会对此Token进行校验,如果服务器端发现此Token将会在很短时间内失败,那就重新生成Token并附加到响应体中,客户端获取服务器响应数据时看下是否有Token,如果有则覆盖本地旧的Token即可。


转载请注明:谷谷点程序 » Token流程是什么?怎么解决超时问题的?靠Cookie+Session机制