0

恕我直言,在 OAuth2.0 中签署 JWT 令牌有两种方法 - 使用对称散列算法(如 HS256)或使用非对称散列算法(RS256)。

如果我们使用RS256等非对称哈希算法,是否需要访问令牌和刷新令牌?我相信它们不是必需的,因为无论负载中存在什么声明,资源服务器都可以独立验证(只要它知道授权服务器的公钥)。

那么访问令牌和刷新令牌的用例是什么?仅对称散列需要吗?

请帮助我更好地理解这一点。提前致谢。

4

1 回答 1

1

访问令牌作为 JWT 的主要思想是您不必每次都去授权服务器。您可以通过检查签名自行验证。这可以从授权服务器/数据库中删除大量流量。
您将需要使用非对称散列算法,以便发行者拥有私钥,并且他是唯一允许发行令牌的人,您可以使用公钥检查 JWT。
刷新令牌是针对数据库验证的,可以撤销。
每次访问令牌过期时,您都使用刷新令牌从颁发者那里获取新的访问令牌。

如果您计划每次要检查访问令牌是否有效时都去授权服务器,您可以使用对称哈希算法,但您会错过 JWT 的要点——您仍然拥有所有授权请求的中心位置。

于 2019-05-01T12:01:48.877 回答