【问题标题】:Does JWT make any sense in CRUD applications?JWT 在 CRUD 应用程序中是否有意义?
【发布时间】:2020-12-17 10:15:39
【问题描述】:

为什么我要使用 JWT 而不是 SessionID,例如,如果我在同一端点中调用数据库,就在确认给定用户的授权之后?在这种情况下,这对我来说毫无意义,它有点失去了目的。

我了解 JWT 背后的想法是消除对数据库的调用,从而使其更具可扩展性和效率。但是如果在那之后我调用数据库,那又有什么意义呢?

使用会话 ID,我将调用 db 两次,而不是 JWT 的加密函数计算,然后调用数据库。

那么 JWT 相对于 Session ID 的优势在哪里呢?或者它只是归结为 CRUD 端点,或者只是与数据库对话的端点并不是 JWT 大放异彩的地方,我在这里吗?

【问题讨论】:

    标签: database rest jwt authorization backend


    【解决方案1】:

    JWT 没有使用会话的好处,JWT 提供了一种在客户端而不是在服务器上维护会话状态的方法。

    对于服务器端会话,您要么必须将会话标识符存储在数据库中,要么将其保存在内存中并确保客户端始终访问同一个服务器。这两个都有缺点。在数据库(或其他集中式存储)的情况下,这将成为一个瓶颈和需要维护的东西 - 本质上是对每个请求进行的额外查询。与客户端的会话意味着您消除了对服务器端会话的依赖,但它会带来一系列挑战。

    【讨论】:

    • 我明白,但是由于查询已经发送到数据库(CRUD 类型的应用程序),它会有什么不同?与实际操作数据和业务逻辑相比,用户表中的一个 SELECT 在相同的计算复杂度级别(以及与 db 等类似的延迟)处于最坏情况。无论我使用什么授权机制,每次调用都会联系数据库,这就是我的主要观点。也许这种类型的应用不是智威汤逊大放异彩的好机会
    猜你喜欢
    • 2015-05-09
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2013-09-07
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多