如何在 c# 中使 jwt 默认令牌作为外部持有者无效或销毁?



我正在使用 web api 并为登录实现了默认行为,即使用 jwt 身份验证的端点,现在我面临着使 jwt 令牌失效或销毁的问题,因为我想实现注销功能。 任何人都可以建议如何处理JWT令牌过期的情况的逻辑吗? 注意:对于登录,GrantResourceOwnerCredentials方法像往常一样使用,它创建用于身份验证目的的令牌。

一旦您发行了令牌,它将一直处于活动状态,直到过期。

如果您需要执行注销或使令牌"失效",则需要执行额外的步骤。

您可以做的是在 User 表的数据库中存储一个 SessionId(即 GUID(。当用户登录时,将会话 ID 与 beader 令牌一起发送。将此会话 ID 存储在 cookie 或 sessionStorage 或其他任何内容中,并在每次请求时将其发送到服务器。然后,您可以将筛选器全局应用于检查从客户端发送的 SessionId 是否与存储在数据库中的 SessionId 匹配的每个操作。

然后,如果需要使令牌失效,请在用户表中存储新的 guid SessionId,当下一个请求出现时,它将不匹配,您可以返回 401 响应。

如果要使某些令牌失效,则需要将您提供的令牌存储在数据库中。

然后,在验证传入令牌时检查这些令牌。

当您需要使一个无效时,只需将其从数据库中删除即可。

相关内容

最新更新