【问题标题】:JWT Authentication and user validationJWT 身份验证和用户验证
【发布时间】:2016-01-06 13:22:40
【问题描述】:

我不确定我是否完全理解正确的 JWT 身份验证必须如何工作的概念。我发现了一篇关于 JWT Authentication 的文章,作者在其中谈到:

  ..the token is self-contained, so the client just need to resend to the server for each request, and the server just have to check the signature to ensure its validity. No more useless call to database or LDAP.

我有点担心短语-不再对数据库或 LDAP 进行无用的调用

但是如何检查例如User 是否仍然存在于系统中或User 未被禁止且此令牌已提前过期?

看起来我肯定需要调用数据库或 LDAP 以获取此信息并将其与 JWT 令牌内的信息进行比较。不是吗?

【问题讨论】:

    标签: authentication architecture jwt


    【解决方案1】:

    您是正确的,如果您必须在每次调用时都检查这一点,您将需要查询数据库或调用授权服务器。

    但关键是 JWT 令牌的生命周期应该足够短,您不必担心这一点。

    如果令牌每小时过期,并且用户被删除或禁止,则他/她最多只能在另一个小时内访问 API(或无论令牌生命周期如何)。然后客户端需要更新令牌并确定用户不再有效。

    不为每个令牌验证查询数据库或调用服务将使您的服务规模更好。它还消除了单点故障(身份验证数据库或服务关闭)。

    【讨论】:

    • 谢谢!我还有一个问题 - 当我需要在每次调用时检查这一点时,JWT 在架构中是一个合理的选择吗?
    • 如果您已经拥有使用 JWT 的基础设施,当然可以。但是您并没有利用它可以给您带来的一些好处。
    猜你喜欢
    • 2018-07-13
    • 2020-03-18
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多