gpt4 book ai didi

asp.net-web-api - 更改密码后如何使OAuth token 无效?

转载 作者:行者123 更新时间:2023-12-03 11:55:52 24 4
gpt4 key购买 nike

我们在Web Api项目中使用SimpleAuthorizationServerProvider使用ASP.NET Identity,并使用OAuth-tokens授权来自客户端的每个请求。 ( token 具有和到期时间跨度,我们不使用刷新 token 。)

当用户更改密码时,我想使他们可能在其他设备上拥有的 token 失效。有什么办法可以明确地做到这一点?我进行了实验,发现更改密码后,现有 token 可以正常工作,应该避免这种情况。

我考虑过将密码哈希或哈希的一部分放入OAuth token 中作为声明,并在派生的AuthorizeAttribute过滤器的OnAuthorization方法中进行验证。
这是解决问题的正确方法吗?

最佳答案

我不建议将密码的哈希值作为声明,并且我相信在更改密码后,没有直接方法可以使 token 无效。

但是,如果可以从客户端应用程序发送到 protected API端点的每个请求都可以访问数据库,那么您需要为授予资源所有者请求的每个 token 存储 token 标识符(也许是Guid)。然后,您将 token 标识符分配为对此 token 的自定义声明,之后,您需要通过查找 token 标识符和资源所有者的用户名来检查每个请求的此表。

更改密码后,您将删除该资源所有者(用户)的 token 标识符记录,并且下次从客户端发送的 token 将被拒绝,因为该 token 标识符和资源所有者的记录已被删除。

关于asp.net-web-api - 更改密码后如何使OAuth token 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26776322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com