首先你要明白token最初的设计思路和目的,并不是很多人所谓的用redis存储什么东西,那样只是session共享的一种方式,token实际上是一串字符串,这个字符串是将登录信息用特定手段进行加密之后,由客户端存储,并在每次请求中携带,用于验证身份的一个令牌机制,也就是说这个字符串本身就包含登录的信息,并不需要其他的redis之类的机制来保存其他信息,也就是说他是无状态的,有效性的判定标准由后端的特定逻辑来确定的,而token在第一次登录之后,由后端计算完成,并发送至客户端并存储,对于客户端来说,之后的每次路由跳转,网络请求,都需要携带这个token,用来告诉路由守卫也好,服务提供者也好,我当前是谁在操作,这个操作是不是被允许,仅此而已,如果需要当前登录用户的详细信息,可以在登陆的时候存到类似vuex等状态保持机制中去,随用随取,所以这种机制下,redis完全没有用处。
创新互联建站是一家集网站建设,代县企业网站建设,代县品牌网站建设,网站定制,代县网站建设报价,网络营销,网络优化,代县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Token
Token是服务端生成的一串字符串,可以看做客户端进行请求的一个令牌,客户端在请求网络上某些资源的时候,必须带着这块令牌(通行证)。
当客户端第一次访问服务端,服务端会根据传过来的唯一标识userId,运用一些加密算法,生成一个Token,客户端下次请求时,只需要带上Token,服务器收到请求后,会验证这个Token。
有些公司会建设统一登录系统(单点登录),客户端先去这个系统获取Token,验证通过再拿着这些Token去访问其他系统;API Gateway也可以提供类似的功能,我们公司就是这样,客户端接入的时候,先向网关获取Token,验证通过了才能访问被授权的接口,并且一段时间后要重新或者Token。
客户端使用用户名、密码做身份验证;
服务端收到请求后进行身份验证;(也可能是统一登录平台、网关)
验证成功后,服务端会签发一个Token返回给客户端;
客户端收到Token以后可以把它存储起来;每次向服务端发送请求的时候,都要带着Token;
Token会有过期时间,过期后需要重新进行验证;
token并不是什么流程,而是一种认证技术,是为了解决后端有状态的服务而出现的。token的原理是把相关认证进行编码并进行签名后生成一串字符,这个字符串在每一次交互中都携带,服务器从这个串中获取认证信息。因此,从这个角度而言,token并没有超时不超时的问题。但为安全计,会在token负载中人为的加入有效时间,规定在有效时间内该token有效,这个有效时间就是通俗理解的超时时间了。
对于编程初学者来说,几乎总是弄不清Token和Session的区别,也并不了解为何要用Token或者Session,尤其是对目前只学过单页开发的人员来说,Session完全可以说是过去时了。
简单点说Token就是服务器端生产了一串字符串令牌,而且返回给客户端进行存储,在下一次请求时将这串令牌放在请求头Header上,就无需每次在带上用户名和密码进行校验,这样就可以减少对数据库的查询操作,减轻服务器的压力。
在Token未兴起之时,其实大部分都是采用的Session机制,有服务器端保有Session会话对象,客户端则是需要通过Cookie中的SessionId回传到服务器来判断当前会话是否存在,若存在则是已登录,若不存在则是失效未登录!这也是Token与Session的区别!当然了Session机制一般要求前端代码与后端代码放在同一域名服务器下,虽然目前有很多跨服务器Session同步,但是那个就比较麻烦了。
而Token则是完全满足了目前前后端分离的需求,更是可以实现前端和后端项目的分别负载均衡。那么如何解决Token超时过期问题呢?这儿就需要对Token的时间进行存储并更新,也就是保留用户最后一次请求服务器的时间,然后下一次请求与该时间进行比对校验,若间隔大于自己设置的超时期限,那么就是过期超时退出,那么如何在自己设置的间隔范围之内,那么该Token有效时间就顺延下去,以此类推,这样就可以完成对应Token的超时过期问题。
以上就是我的回答,也是目前我在项目中进行使用的解决办法,希望能够对你有所帮助和解答,我是路飞写代码,欢迎关注我,一起分享知识!
到此,以上就是小编对于刷新redis时间怎么设置的的问题就介绍到这了,希望这1点解答对大家有用。
当前名称:Token流程是什么?怎么解决超时问题?(刷新redis时间怎么设置)
文章源于:http://www.shufengxianlan.com/qtweb/news38/497238.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联