我编写了一个asp.net核心3.0 web,在这里我使用JWT令牌对用户进行身份验证。一旦用户获得令牌,他/她就可以使用它,直到它过期。
我所做的就是在身份验证时将此令牌存储在内存中,以获得其他最小的详细信息,例如用户名、生成的令牌和“令牌”。
,
发布于 2020-02-12 06:05:05
中将状态更新为无效。
在分布式应用程序中,维护状态是一个挑战。因此,最好由redis支持单独的缓存层。这样,我们就可以维护应用程序的无状态性。
除了令牌过期时间之外,您还可能希望添加额外的验证检查,这取决于JWT的内容(aud声明、签名验证等)。要回顾JWT令牌的内容,可以使用以下工具
https://devtoolzone.com/decoder/jwt
干杯,Lakshmanan
发布于 2020-02-12 03:38:29
当您说“在内存中”时,这是指在客户端机器上还是在服务器的某个地方?我假设你指的是客户端。
目前我自己正在使用JWT,下面是我的建议:
1)将令牌保存在会话存储中。2)只需清空会话(或存储它的地方)。3)如果你想访问它,你肯定需要把它存放在某个地方。但是,获取所有用户的列表听起来像是想要后端的数据。您可以在后端服务器上跟踪这一点,但是通常这些令牌被处理并持久化到数据库中。但是,即使在后端服务器上,也可以有一个客户机对象数组来跟踪哪些对象已登录(即哪些对象有未过期的令牌)。
典型的实践是生成两个令牌(auth令牌和刷新令牌),然后在用户提交令牌进行身份验证时根据数据库检查它们。
https://stackoverflow.com/questions/60180615
复制相似问题