Asp.net core 在内存中存储JWT令牌是一种好的做法吗
我编写了一个asp.NETCore3.0WebAPI,在这里我使用JWT令牌对用户进行身份验证。一旦用户获得令牌,他/她就可以使用它,直到到期 我所做的是,我还将该令牌在身份验证时存储在内存中,以获取其他最小细节,例如用户名、在生成的令牌和“令牌”Asp.net core 在内存中存储JWT令牌是一种好的做法吗,asp.net-core,jwt-auth,Asp.net Core,Jwt Auth,我编写了一个asp.NETCore3.0WebAPI,在这里我使用JWT令牌对用户进行身份验证。一旦用户获得令牌,他/她就可以使用它,直到到期 我所做的是,我还将该令牌在身份验证时存储在内存中,以获取其他最小细节,例如用户名、在生成的令牌和“令牌” 我的第一个问题是,这是一个好的做法吗?因为令牌是无状态的,因此可以避免服务器端维护令牌的麻烦 我的第二个问题是,如果这样做是可以接受的,那么一旦令牌过期,我如何从内存中删除该令牌信息 如果我没有将这个令牌存储在内存中,那么如何提取诸如“获取所有登录用
LakshmananNope..in memory意味着我将它存储在服务器端(services.AddMemoryCache)。我的用户通常是3-4人(他们不是真正的用户,而是试图访问我的api的其他应用程序),因此所有登录用户/应用程序的列表不应该很长。@Samra那么这里发布的规则也适用。在前端保留一个副本,可以将它们作为类存储在后端。完成后清空空间,或者根据需要将其值设置为null。如果您不想使用DB进行扩展,这就足够了。将令牌保存在内存中违背了无状态的概念,并且没有任何方法可以以这种方式获取所有登录用户。您可以做的只是保存令牌的一小部分信息,就像内存中的UserId和expireDate一样。因此,每当您想登录时,用户都会从这个列表中读取。还有一个建议。不要将令牌保存在cookie中,将它们保存在会话存储中,因为它无法从javascript访问。@Mohammadniazmand,您可以将令牌存储为HttpOnly cookie,javascript也无法访问它。