别再使用JWT做会话管理了(二)

一个关于你的 “解决方案” 为什么不适用的简易流程图

我认为可以使用JWT实现Session管理通过以下方式...

微服务架构

另外一个论点是:在微服务架构中使用JWT进行会话仍然很好。

这个也是错误的,但有点太复杂,不适合流程图。

客户端与服务直接对话的微服务架构中,您将拥有大致两种类型的服务:

  • 有状态服务:具有会话或持久性概念的东西,如聊天服务。

  • 无状态服务:没有会话概念的东西,而是执行单独的自包含任务,如视频转码服务。

在任何一种情况下,您都不需要使用JWT令牌作为会话。

对于无状态服务,根本没有会话,因此您只需让应用程序服务器为每个单独的授权操作分发短期的一次性令牌。

对于有状态服务,您为每个服务分发一个新的短期一次性令牌 - 然后在服务本身上进行交换,以进行该特定服务的会话。您永远不会将Token本身用作Session。

在微服务架构中,客户端只与应用服务器通信,这些都不是相关的,因为服务之间没有“Session的概念。所有都是来自相同源的所有单独的、自包含的动作。使用JWT令牌可能很好,即使它们不是这种场景的最佳选择。

不要将JWT用作会话Session。

声明:本文翻译自《Stop using JWT for sessions part 2》,已征得原文作者同意。如有翻译不正确或不合理部分,欢迎指出。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不幸的是,最近我看到越来越多的人建议使用JWT(JSON Web Tokens)来管理其Web应用程序中的用户会话...
    vayci阅读 5,341评论 3 35
  • 1. 微服务架构介绍 1.1 什么是微服务架构? 形像一点来说,微服务架构就像搭积木,每个微服务都是一个零件,并使...
    静修佛缘阅读 6,702评论 0 39
  • 构建用户管理微服务翻译自:https://springuni.com 构建用户管理微服务(一):定义领域模型和 R...
    极乐君阅读 1,588评论 0 10
  • 摘要: 在Web应用中,使用JWT替代session并不是个好主意 适合JWT的使用场景 抱歉,当了回标题党。我并...
    ThoughtWorks阅读 277,448评论 157 388
  • 转载本文需注明出处:微信公众号EAWorld,违者必究。 本文目录: 一、单体应用 VS 微服务 二、微服务常见安...
    72a1f772fe47阅读 8,585评论 3 25