阅读了许多关于JWT和Session的文章之后,我很确定我不应该在会话中使用JWT。
但是,是否有机会在同一应用程序中使用JWT和会话?如果是,如何,如果不是,那有什么替代方法?
编辑:经过数小时的挖掘,我对何时使用JWT和何时使用会话感到更加困惑。任何帮助表示赞赏。
我认为,除非应用程序非常简单,否则JWT的实现通常应该与非cookie会话堆叠在一起。
一些随机场景:
假设以下内容;一个Web应用程序正在使用JWT进行身份验证,并且该应用程序使管理员能够将任何客户端标记为非活动客户端(已阻止),因此应防止该客户端登录。
现在问题在于通过JWT进行身份验证;我们不知道该特定客户端是否被阻止。
为了解决此问题,我已经看到一些开发人员在每个请求上查询数据库。其他开发人员撤消了JWT,并发布了一个标记为非活动的新标记,但是如果动态标记过多,该怎么办?同样很难打到数据库也不明智。
结论JWT +会话:
一种简单的解决方案是为每个有效的JWT授予内存中会话并将用户所需的数据存储在其中,对用户数据的任何更改都应反映在用户存储的会话中。所有传入的请求都将得到JWT验证以及会话验证。