恕我直言,在OAuth2.0中有两种签名JWT令牌的方法-使用对称哈希算法(例如HS256)或使用非对称哈希算法(RS256)。
如果我们使用非对称哈希算法(例如RS256),是否需要访问令牌和刷新令牌?我相信,由于有效负载中存在任何声明,因此不需要它们,资源服务器可以独立进行验证(只要知道授权服务器的公钥即可)。
那么访问令牌和刷新令牌的用例是什么?仅对称哈希是必需的吗?
请帮助我更好地理解这一点。预先感谢。
答案 0 :(得分:0)
将访问令牌作为JWT的主要思想是您不必每次都去授权服务器。您可以通过检查签名来自己验证它。这可以从授权服务器/数据库中删除大量流量。
您将要使用非对称哈希算法,因此发行者拥有私钥,而他是唯一允许发行令牌的人,您可以使用公钥检查JWT。
刷新令牌是针对数据库验证的令牌,可以撤销。
每次访问令牌过期时,您都使用刷新令牌从发行者那里获取新的访问令牌。
如果您打算每次都要检查访问令牌是否有效时都去授权服务器,则可以使用对称哈希算法,但是您错过了JWT的要点-所有授权仍然居于中心位置请求。