为什么 JWT 是无状态认证?

SRa*_*Raj 5 authentication oauth-2.0 jwt jwt-auth

我试图了解 JWT 身份验证是如何无状态的。在有状态身份验证中,会有一个会话 ID。这里有一个已签名的 JWT 令牌。所以认证服务器发出 JWT 令牌,但我可以说后续请求中 JWT 令牌的验证是由端点服务器(应用程序服务器)而不是认证服务器完成的。我相信这是可能的,因为 JWT 是用到期日期(以及一些其他信息)签名的,并且所有端点服务器都可以使用身份验证服务器的公共证书。

因此,身份验证服务器将只负责颁发令牌而不负责验证。验证将由端点服务器完成。

我的理解正确吗?这就是 JWT 无状态的方式吗?否则,我看不出它与有状态身份验证有何不同,因为两者都可以使用令牌实现。

在状态验证中,中央服务器将负责发布令牌以及验证每个请求。

Jon*_*art 13

JSON Web Tokens (JWT) 被称为无状态,因为授权服务器不需要维护任何状态;令牌本身就是验证令牌持有者授权所需的全部内容。

JWTs都签订使用数字签名算法(例如RSA)不能被伪造。因此,任何信任签名者证书的人都可以放心地相信 JWT 是真实的。服务器无需咨询令牌颁发服务器以确认其真实性。

请注意,在此图中,资源服务器不需要与授权服务器核对:

客户端访问 API 服务器 来源:https : //jwt.io/introduction/