我应该在Redis中存储JWT令牌吗?

我正在使用ExpressJS Mongodb(Mogoose)构build应用程序。 应用程序包含用户在访问之前必须进行authentication的路线。

目前我写了一个快递中间件来做同样的事情。 在这里用JWT令牌的帮助下,我正在做mongodb查询来检查用户是否被authentication。 但感觉这可能会把不必要的请求加载到我的数据库上。

我应该整合redis这个特定的任务?
它会改善API性能吗? 或者应该继续使用现有的mongodb方法?

如果我对此有更多的了解,将会有所帮助。

TLDR:如果你想在某个时候撤销令牌,那么把它存储在像Redis这样快速的东西上。

使用JWT的一个有据可查的缺点是,如果用户需要注销或者令牌已被泄露,则没有简单的方法来撤销令牌。 撤销令牌意味着在某个存储中查找它,然后决定下一步该做什么。 因为JWT的一个要点就是避免往返数据库,所以妥善的妥协是将其存储在比rdbms更less的税收上。 对Redis来说这是一个完美的工作。

您可以使用Redis来存储jwt标签。 Redis更方便的存储这些数据。 对萝卜的要求不应该对性能有很大的影响。 你可以试试库jwt-redis

正如我们现在可以得出结论:JWT令牌并不意味着像会话一样存储。