专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

Token流程是什么_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 4:31:05       共计:3566 浏览

Token流程是什么?

Token

Token是服务端生成的一串字符串,可以看做客户端进行请求的一个令牌,客户端在请求网络上某些资源的时候,必须带着这块令牌(通行证)。

当客户端第一次访问服务端,服务端会根据传过来的唯一标识userId,运用一些加密算法,生成一个Token,客户端下次请求时,只需要带上Token,服务器收到请求后,会验证这个Token。

有些公司会建设统一登录系统(单点登录),客户端先去这个系统获取Token,验证通过再拿着这些Token去访问其他系统;API Gateway也可以提供类似的功能,我们公司就是这样,客户端接入的时候,先向网关获取Token,验证通过了才能访问被授权的接口,并且一段时间后要重新或者Token。

基于Token的认证流程

客户端使用用户名、密码做身份验证;

服务端收到请求后进行身份验证;(也可能是统一登录平台、网关)

验证成功后,服务端会签发一个Token返回给客户端;

客户端收到Token以后可以把它存储起来;每次向服务端发送请求的时候,都要带着Token;

Token会有过期时间,过期后需要重新进行验证;

服务端收到请求,会验证客户端请求里面的Token,验证成功,才会响应客户端的请求;

Token过期时间及超时刷新策略

因为Token是访问资源的凭证,所以必须要有过期时间。否则一次认证通过就可以永久使用资源,那么认证功能也就失去了意义,所以Token需要有过期时间。

Token的过期时间很容易甚至,在生成Token的元素中,增加时间戳即可;然后在验证过程中,判断是否超时;Token的超时时间不宜过长,也不宜过短,我们项目设置的是1个小时。

Token过期之后,需要重新获取,一种方式是重新来一遍获取Token的过程(比如重新登录),这种做法实现起来简单,但是用户体验不好;另外一种主动刷新Token,在过期后自动续约,或者定时任务定期去刷新Token,以保持Token始终在有效期内;我们现在采用被动的方式获取和更新Token。

希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:虚拟按键怎么关闭_java | ·下一条:datalore是什么语言_python

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有