JWT 身份验证和用户验证

JWT Authentication and user validation

我不确定我是否完全理解正确的 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 令牌内的信息进行比较。不是吗?

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

但重点是 JWT 令牌的生命周期应该足够短,您不必为此担心。

如果令牌每小时过期一次,并且用户被删除或禁止,he/she 最多只能再过一个小时(或任何令牌生命周期)访问 API。然后客户端需要更新令牌并发现用户不再有效。

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