摘要:而且这样做的话,会存在多个令牌同时有效,可能会引起一些安全问题。这种做法也是很多人采用的一种。对于续期的话,个人觉得第二种方案是比较好的一种方案。而退出的话,如果不考虑泄露的问题,那么第一种方案是比较好的一种方案。这些都是自己对的一些理解。
在使用jwt的过程中发现了两个问题续期和退出的问题。续期
因为jwt的token在签发之后是有过期时间的,所以就存在管理这个过期时间的问题。我看网上有提出解决方案的大致有下面几个
每次更新过期时间,跟session一样,每次请求的时候都会去更新下token过期时间.但是对于jwt来说,更新过期时间就意味着jwt的token会变,那么前端就需要每个请求都去保存一次新的token。这样使得前端的工作变的复杂起来。而且这样做的话,会存在多个令牌同时有效,可能会引起一些安全问题。
还有一个就是每隔一段时间去更新一次token。这种做法也是很多人采用的一种。比如:token过期时间是一个小时。预设每五十五分钟去更新token。这种模式也是需要前端去配合完成的。
退出因为token在签发之后在一段时间内是一直有效的,那么这种情况,我们怎么去管理登出呢?
简单的方式就是客户端直接删除token。但是这样的话,如果token泄露了也是不安全的。
有人提出退出的时候将token存放在redis中,过期时间设置为跟token的时候一样。当用户在次用旧的token访问的时候,如果发现redis中存在token,那么提示token过期。
对于续期的话,个人觉得第二种方案是比较好的一种方案。而退出的话,如果不考虑泄露的问题,那么第一种方案是比较好的一种方案。但是如果做SSO的话可能第二种方案是比较好的一种,但是在用到了redis之后就违背了jwt的设计初衷,需要与数据库交互。
其实个人觉得,jwt的加密方式结合redis这种也是可以采用的。毕竟这些都是为了解决问题。当利用到redis之后,我们就可以将jwt扩展下。在payload部分加载一个生成的refresh token ,这个refresh token也是有过期时间的,我们需要将这个refresh token存放在redis中。这样的话,我们就可以把jwt的过期时间放在这个refresh token中维护。续期也就是维护这个refresh token的过期时间,退出的话 也就是删除这个refresh token就可以了。
其实这样的话就跟传统的token验证一样了,也就是外层加了一个jwt的验证。
可能是我对于这方面了解的比较少,不能想到什么有效的方案。这些都是自己对jwt的一些理解。如果哪位大佬有更好的方案,希望赐教。感谢
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29510.html
摘要:什么是是一个开放的数据交换验证标准,一般用来做轻量级的鉴权。由于许多接口设计是遵循无状态的比如,所以是这一套机制的替代方案。组成由三部分组成头部载荷签名。 什么是JWT? JWT(Json Web Token)是一个开放的数据交换验证标准rfc7519(https://tools.ietf.org/html/r...,一般用来做轻量级的API鉴权。由于许多API接口设计是遵循无状态的(...
摘要:到这里,基于的前后端分离实现方案就搞定啦四关于的一些思考实际上,在使用的过程中有一个比较致命的缺点,就是一旦签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。结语以上是关于基于的前后端分离实现方案的总结和思考。 一、jwt是什么 JWT全称, JSON Web Token,是一个以JSON为基准的标准规范。 举例:服务器认证以后,生成一个 JSON 对象,发回给用户,就像下...
摘要:框架具有轻便,开源的优点,所以本译见构建用户管理微服务五使用令牌和来实现身份验证往期译见系列文章在账号分享中持续连载,敬请查看在往期译见系列的文章中,我们已经建立了业务逻辑数据访问层和前端控制器但是忽略了对身份进行验证。 重拾后端之Spring Boot(四):使用JWT和Spring Security保护REST API 重拾后端之Spring Boot(一):REST API的搭建...
摘要:创建应用有很多方法去创建项目,官方也推荐用在线项目创建工具可以方便选择你要用的组件,命令行工具当然也可以。对于开发人员最大的好处在于可以对应用进行自动配置。 使用JWT保护你的Spring Boot应用 - Spring Security实战 作者 freewolf 原创文章转载请标明出处 关键词 Spring Boot、OAuth 2.0、JWT、Spring Security、SS...
摘要:为用户提供授权以允许用户操作非公开资源,有很多种方式。具体的代码根据不同的授权方案而有所不同。使用授权原理利用来验证用户,有两种机制实现。使用来实现用户授权主要用于签发如果有将异步的签名。 在很多应用中,我们都需要向服务端提供自己的身份凭证来获得访问一些非公开资源的授权。比如在一个博客平台,我们要修改自己的博客,那么服务端要求我们能够证明 我是我 ,才会允许我们修改自己的...
阅读 1416·2021-11-17 09:33
阅读 1237·2021-10-11 10:59
阅读 2866·2021-09-30 09:48
阅读 1877·2021-09-30 09:47
阅读 2965·2019-08-30 15:55
阅读 2296·2019-08-30 15:54
阅读 1463·2019-08-29 15:25
阅读 1619·2019-08-29 10:57