所以,现在我正在构建一个供第三方使用的API,而我正在阅读有关RS256和HS256的内容。我所理解的是,在第一个中你使用公钥验证和私钥进行签名,而另一个只使用一个密钥..所以如果你使用RS256,因为你想保留你的密钥安全并希望客户端验证令牌,但我不明白为什么您要在客户端验证令牌?因为您向服务器发出了一个post请求,然后它会向您发送一个令牌,每当您想要发出授权请求时,您只需使用该令牌,服务器就会对其进行验证,如果可以,则让您继续。那么,为什么要在客户端验证令牌?我认为这是后端的职责。
我想也许我错了什么,希望你帮忙解决这个问题。感谢。
修改
所以,我的问题是,我知道RS256和HS256之间的区别,但我不明白它是如何使用它的流程。现在我正在开发第三方API,我只需要在客户端请求它时返回令牌,然后在需要它的请求中,只需从服务器验证它是否是有效令牌。根据我的理解,当您想要从客户端验证令牌时使用RS256,如果这是对的,有人可以给我一个示例,说明何时或为什么要验证令牌中的令牌?客户端?
答案 0 :(得分:11)
在以下时间使用RS256:
令牌由第三方签署,通常是身份提供商(例如oauth2 / oidc),您需要验证令牌是否已由可信实体发出
令牌由客户签名,通常用于访问客户以前已注册公钥的API
令牌由SingleSignOn系统中的集中身份验证服务器签名,用于访问多个联合服务器
令牌用于在双方之间传输数据,不一定用于身份验证,签名用于确保签名人的身份
在以下情况下使用HS256: