我的堆栈:MongoDB -> API在前端带有环回-> Nodejs ->和Reactjs(每个部分在不同的服务器上(
如果我在节点服务器中有逻辑,并且在另一个节点服务器中有 API。我必须在以下两个方面对我的用户进行身份验证:
我必须为每个服务器制作令牌,或者可以在两者之间共享?
我知道 JWT 在服务器中制作了一个令牌,只有这个服务器可以解密它。
您可以使用相同的令牌,同时使用相同的签名密钥。
如果使用对称密钥 (HMAC(,则必须在两台服务器之间共享密钥,因为密钥用于签名和验证令牌
如果使用非对称密钥 (RSA(,则令牌将使用私钥进行签名,并通过公众进行验证。然后,您可以在一台服务器中颁发令牌,并将公钥分发给另一台服务器,甚至是客户端。然后减少了共享密钥的安全问题。在这种情况下,缺点可能是令牌是在一台服务器中颁发的。如果您需要同时发出两者,那么对称密钥可能更合适