JWT 吊销信息在哪里存储,mongoDB 还是 Redis?
Posted
技术标签:
【中文标题】JWT 吊销信息在哪里存储,mongoDB 还是 Redis?【英文标题】:Where to store JWT revocation information, mongoDB or Redis? 【发布时间】:2017-10-21 08:48:03 【问题描述】:目前使用 JWT 而非会话来实现 MEAN 堆栈用户注册/登录系统,以进行所有身份验证。
为了能够撤销 JWT,我需要将一些 JWT 信息存储为令牌黑名单的一部分。我最初的想法是使用 MongoDB 来存储列入黑名单的令牌,但 Redis 也适合吗?在这种情况下我不愿避免使用 Redis 的原因是,如果服务器崩溃/重新启动,那么令牌黑名单将会丢失,而对于 MongoDB,黑名单将保持不变/持久。
任何建议将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:Redis 支持多种基于磁盘的持久性模式。您可以使用 save
配置指令启用 snapshop 持久性 (RDB),也可以使用 appendonly yes
配置指令启用变更日志持久性 (AOF)。
对于您的用例,您可能应该使用 AOF 持久性。
更多关于 Redis 持久化的信息可以在https://redis.io/topics/persistence找到。
【讨论】:
谢谢。我不知道 Redis 可以坚持下去。将通读手册。出于兴趣,您是否说使用启用 AOF 的 Redis 而不是简单的 Mongo 解决方案有什么优势?我认为数据访问速度将取决于数据集的大小,因此 Redis 更适合较小的数据集,因为它存在于内存中。以上是关于JWT 吊销信息在哪里存储,mongoDB 还是 Redis?的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS:在客户端将 JWT 存储在哪里? sessionStorage、localStorage 还是 cookie?
哪种 oauth 令牌类型更适合基于节点 js 的应用程序。 JWT 还是不透明的?在哪里存储它们中的每一个