考虑一种情况,我在登录期间发送了auth-token
。
现在有什么方法可以避免将对DB
所做的每个validate
击中request
到node server
。
任何链接或描述都将有所帮助。
最佳答案
是的,您可以分两步执行此操作:
首先,JWT令牌验证不需要DB调用。通常,HMACSHA256用于对JWT进行签名。如果您有密钥,则应该能够计算传入的JWT有效负载上的MAC,并将其与传入的MAC比较,而无需进行任何DB调用。
为了提高安全性,您可以将新创建的JWT存储在内存缓存中(例如Redis),其TTL应该与JWT有效期相同。当TTL过期时,缓存将自动删除JWT条目,从而导致验证失败。如果出于某种原因,缓存不与文件系统同步,并且缓存服务器崩溃,则丢失的只是有效的令牌,迫使用户重新登录(当然,在通常情况下,您可以采取一些措施来避免这种情况)。因此,您要做的就是将传入的JWT与缓存的列表进行比较。如果在高速缓存中,则验证成功
关于javascript - 避免在每个请求上验证jwt token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53040219/