我一直在调查智威汤逊,我对使用它非常感兴趣。由于数字签名和有效负载内容,我喜欢它不需要服务器上的状态检查。JSON Web令牌(JWT) - 验证客户端
我遇到困难的事情是验证客户端。我知道签名允许服务器说“是的,我发出了这个令牌,它是有效的”,但我并不完全理解服务器如何验证客户端是谁说的。
数字签名在服务器端是有意义的,但客户端无法签署任何内容来验证它是谁,因为浏览器无法保守秘密。这是我无法包裹头部的一部分。如果浏览器无法保密,那么它如何将数据添加到令牌中(如随机数或有关所请求资源的信息)以包含在签名中,类似于oAuth 1.0的工作原理。
这不支持?有没有其他的方式来验证浏览器是谁说的?如果我的客户有一个泄漏令牌的安全漏洞会怎么样?如果客户端未通过验证,任何人都不能使用这些令牌?我不认为“短期到期”是解决这个问题的好办法。
有人能帮我把我的头围绕JWT的这部分吗?
嗯,我没有想过使用与客户端相关的秘密,这是一个好主意。 Oauth 1.0a通过让“客户端”(实际上是另一台服务器)对其整个请求进行签名来处理此问题。在浏览器中没有办法做到这一点,但我喜欢使用来自客户端的动态秘密的想法。 – BeniRose