所以,现在我正在构建一个供第三方使用的 API,并且我正在阅读有关 RS256 和 HS256 的内容。我的理解是,两者之间的区别在于,第一个使用公钥进行验证,使用私钥进行签名,而另一个则仅使用一个密钥。因此,如果您使用 RS256,因为您想保留您的信息,请使用 RS256。密钥安全并希望客户端验证令牌,但我不明白为什么您要验证客户端中的令牌?因为您向服务器发送了一个发布请求,然后它会向您发送回一个令牌,并且每当您想要发出授权请求时,您只需使用该令牌,服务器就会验证它,如果可以就让您继续。那么,为什么要在客户端验证令牌呢?我认为这是后端的职责。
我想也许我错了,希望你能帮忙解决这个问题。谢谢。
EDIT:
所以,我的问题是,我知道 RS256 和 HS256 之间的区别,但我不明白的是如何使用它的流程。现在我正在开发一个第三方api,我只需要在客户端请求时返回一个令牌,然后在需要它的请求中,只需从服务器验证它是否是有效令牌。据我了解,当你想从客户端验证你的令牌时,会使用RS256,如果这是正确的,有人可以给我一个例子,说明你何时或为什么要验证客户端中的令牌?
在以下情况下使用 RS256:
令牌由第三方签名,通常是身份提供者(例如oauth2/oidc),并且您需要验证令牌是否是由受信任的实体颁发的
令牌由客户签名,通常是为了访问 API,客户端之前已经注册了公钥
令牌由 SingleSignOn 系统中的集中式身份验证服务器签名它们用于访问多个联合服务器
令牌用于在两方之间传输数据,不一定用于认证目的,签名用于保证签名者的身份
在以下情况下使用 HS256:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)