在这种情况下,我想通常的答案是JWTs。他们很好地解决了我的问题:我们客户的后端程序员可以对他们的某个用户提出一些声明,用我们给他们的密钥签名,通过前端发送,我们可以在后端验证这些声明。这很优雅,因为这意味着在他们的后端和我们的后端之间没有直接的依赖关系,我们仍然可以共享经过验证的声明。
-
很少有语言有内置支持,所以您需要安装一些库来实现它,并希望它得到很好的实现。
-
none
算法让我担心我可能会错误地使用它们,或者我们的客户可能会。
所以我在想,与所有的“不要滚你自己的密码”的建议相反,JWT真正提供了什么,而HMAC没有呢?
令牌=base64_encode(声明)+hmac(声明,密钥)
-
许多语言都内置了对eg HMAC-SHA256的支持,充分保证了加密实现的质量。
-
而且,它通常是一条线。告诉客户“复制并粘贴这行代码”比告诉他们“安装这个复杂的库并希望它能工作”更有吸引力
-
JWT与复杂性无关。
有理由吗
不
是吗?什么,真的,JWT的报价比
message + hmac
方案类型?