我想在我的应用程序中使用 JWT。
现在我想知道将用户密码与私有(private) secret 结合使用作为签署我的 token 的 key 是否安全。这样,如果用户更改他/她的密码, token 就会失效。
但也许它让我的私有(private) secret 变得脆弱?
感谢您对此的想法!
最佳答案
secret 是客户端和服务器之间交换的预共享字符串。
所以在你的情况下:
SecretString= PresharedSecret + ClientPassword
因此,每次客户端传递 JWT token 时,您都需要从数据库中检索密码或通过某种方式预加载密码并检查密码更改以验证 token 。
这可能会导致以下情况:
需要确定一个新的预共享 secret ......并使用新的注册密码进行验证。
总的来说,它确实增加了安全性。但是,这取决于基础设施的目的或用途。如果它是一个用户经常忘记密码的系统。这可能不是一个很好的选择。
关于security - key 中包含用户密码的 JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056285/