6 个答案:

答案 0 :(得分:42)

JWT存储在浏览器上,因此删除在客户端删除cookie的令牌

如果您还需要在服务器端到期之前使令牌无效,例如帐户已删除/阻止/暂停,密码已更改,权限已更改,用户已由管理员注销,请查看Invalidating JSON Web Tokens一些公共技术,如创建黑名单或旋转令牌

答案 1 :(得分:7)

创建令牌后,无法手动使令牌失效。因此,实际上无法像在会话中那样在服务器端使用JWT注销。

JWT是无状态的,这意味着您应该将所需的所有内容存储在有效负载中,并跳过对每个请求的数据库查询。但是,如果您计划具有严格的注销功能,即使您已从客户端清除了令牌,也无法等待令牌自动过期,那么您可能需要忽略无状态逻辑并执行一些查询。那么有什么解决方案?

在令牌上设置合理的到期时间

注销后从客户端删除存储的令牌

在每个授权请求上针对黑名单查询提供的令牌

黑名单

所有不再有效且尚未过期的令牌的“黑名单”。您可以在文档上使用带有TTL选项的数据库,该数据库将设置为令牌过期之前剩余的时间。

Redis

Redis是黑名单的一个不错的选择,它将允许在内存中快速访问该列表。然后,在针对每个授权请求运行的某种中间件中,您应该检查提供的令牌是否在黑名单中。如果是这样,则应抛出未授权的错误。如果不是,则放手,JWT验证将处理它,并确定它是否已过期或仍处于活动状态。

答案 2 :(得分:1)

您可以在令牌中添加“发出时间”,并为服务器上的每个用户维护“上次注销时间”。在检查令牌有效性时,还要在“上次注销时间”之后检查“签发时间”。

答案 3 :(得分:1)

从客户端注销,最简单的方法是从浏览器的存储中删除令牌。

但是,如果您想销毁节点服务器上的令牌,该怎么办-

JWT软件包的问题在于它没有提供任何方法或方法来破坏令牌。

因此,为了销毁服务器端的令牌,您可以使用jwt-redis软件包而不是JWT

此库(jwt-redis)完全重复了库jsonwebtoken的全部功能,但有一个重要的补充。 Jwt-redis允许您将令牌标签存储在redis中以验证有效性。 Redis中没有令牌标签会使令牌无效。要销毁jwt-redis中的令牌,有一种destroy方法

它以这种方式工作:

1)从npm安装jwt-redis

2)要创建-

var redis = require('redis');

var JWTR = require('jwt-redis').default;

var redisClient = redis.createClient();

var jwtr = new JWTR(redisClient);

jwtr.sign(payload, secret)

.then((token)=>{

// your code

})

.catch((error)=>{

// error handling

});

3)要验证-

jwtr.verify(token, secret);

4)要摧毁-

jwtr.destroy(token)

注意:您可以像在JWT中提供的一样,在令牌登录期间提供expiresIn。

答案 4 :(得分:0)

在控制器中创建注销功能,如下所示:

public function logout() {

Auth::guard('api')->logout();

return response()->json([

'status' => 'success',

'message' => 'logout'

], 200);

}

答案 5 :(得分:0)

虽然其他答案为各种设置提供了详细的解决方案,但这可能会帮助正在寻找一般答案的人。

共有三个常规选项,选择一个或多个:

在客户端,使用javascript从浏览器中删除cookie。

在服务器端,将cookie值设置为空字符串或无用的东西(例如"deleted"),并将cookie过期时间设置为过去的时间。

在服务器端,更新存储在数据库中的刷新令牌。使用此选项可从所有已登录用户的设备中注销用户(其刷新令牌将无效,因此他们必须再次登录)。

jwt token注销_如何在注销时销毁JWT令牌?相关推荐

  1. jwt token注销_辩证的眼光搞懂 JWT 这个知识点

    什么是 JWT 概念 JSON Web Token(简称 JWT)是目前最流行的跨域认证解决方案. JWT 原理 JWT 组成 JWT 由三部分组成:Header,Payload,Signature ...

  2. jwt token 太长_理解 JWT 鉴权的应用场景及使用建议

    JWT 介绍 JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用于在各方之间以JSON对象 ...

  3. 使用identity+jwt保护你的webapi(二)——获取jwt token

    前言 上一篇已经介绍了identity在web api中的基本配置,本篇来完成用户的注册,登录,获取jwt token. 开始 开始之前先配置一下jwt相关服务. 配置JWT 首先NuGet安装包: ...

  4. IdentityServer4实战 - 谈谈 JWT Token 的安全策略

    一.前言 众所周知,IdentityServer4 默认支持两种类型的 Token,一种是 Reference Token,一种是 JWT Token .前者的特点是 Token 的有效与否是由 To ...

  5. 一文详解jwt token以及sprig boot如何整合实现 jwt token操作

    文章目录 1. jwt是什么 2. jwt的来源 2.1 传统的session认证 2.2 基于token的鉴权机制 3. JWT的构成 3.1 header 3.2 playload 3.3 sig ...

  6. jwt token注销_退出登录时怎样实现JWT Token失效?

    退出登录时,如果不使JWT Token失效会产生如下2个问题 问题1-未过期的token还是可以用 要是用户在多个设备登录了,而且本地保存了token.当一个地方丢弃token,但是这个token要是 ...

  7. jwt token注销_【原创精选】OAuth 2.0+JWT+spring security完成认证授权-生产级-附带源码...

    前言导读 分析一下为什么要用OAuth2和JWT来做 1. **单点登录(SSO)**方案单击登录方案是最常见的解决方案,但单点登录需要每个与用户交互的服务都必须与认证服务进行通信,这不但会造成重复, ...

  8. jwt token注销_详解JWT token心得与使用实例

    本文你能学到什么? token的组成 token串的生成流程. token在客户端与服务器端的交互流程 Token的优点和思考 参考代码:核心代码使用参考,不是全部代码 JWT token的组成 头部 ...

  9. jwt token注销_JWT生成token及过期处理方案

    ## 业务场景 在前后分离场景下,越来越多的项目使用token作为接口的安全机制,APP端或者WEB端(使用VUE.REACTJS等构建)使用token与后端接口交互,以达到安全的目的.本文结合sta ...

最新文章

  1. python文本编码转换_Python: 转换文本编码
  2. 企业网络推广之下滴滴造车野心不减,“造车时代”想入局恐需技术先行
  3. 【Android 逆向】Android 进程注入工具开发 ( EIP 寄存器指向 dlopen 函数 | ESP 寄存器指向栈内存 | 调试程序收回目标进程控制权 )
  4. 解决 Windows To Go U盘没有盘符的问题
  5. 手机html5雪花飘落,如何使用HTML5canvas实现雪花飘落
  6. 防范攻击 加强管控 - 数据库安全的16条军规
  7. Julia面向对象(多重派发)
  8. FastJSON、Gson和Jackson性能对比
  9. squid 简单介绍及代理说明
  10. php下memcache结合数据库
  11. “你的深度学习框架包含15个漏洞”,360说 | 附论文
  12. 微pe工具箱 系统安装教程_微PE工具箱 V2.0正式版(附安装系统教程)
  13. 自备ACM模板 —— 数学篇
  14. rc时间常数定义_时间常数RC的计算方法
  15. 爬取校花图片保存到本地文件夹下(requests+re)
  16. android layout.inflater,LayoutInflater.inflate详解
  17. jq插件之bxSlider
  18. php开发微信jssdk录音功能,微信 JS-SDK 录音功能开发
  19. quantenna测试RF射频性能简单说明
  20. java中double与Double的区别

热门文章

  1. php损坏的图像,php – 复制后图像损坏
  2. [Python] os.poen和subprocess.popen
  3. 【大数据】华为内部狂转好文,大数据,看这一篇就够了!
  4. php动态模拟时钟,使用canvas制作简易实时动态时钟
  5. 7.Libgdx扩展学习之Box2D_距离关节 旋转关节
  6. 小米k40开启热点后,计算机链接不上——AP
  7. android中clip的使用
  8. dhcp服务器在哪个位置,dhcp服务器是什么 dhcp服务器怎么设置【步骤教程】
  9. Worm.Win32.Delf.bg专杀【萧心论坛发】
  10. LinkedList的push add offer操作有什么不同