首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在更改密码时使OAuth令牌失效?

如何在更改密码时使OAuth令牌失效?
EN

Stack Overflow用户
提问于 2014-11-06 17:52:45
回答 1查看 14.1K关注 0票数 23

我们在一个带有SimpleAuthorizationServerProvider的Web项目中使用ASP.NET身份,我们使用OAuth-tokens来授权来自客户端的每个请求。(令牌具有和过期时间跨度,我们不使用刷新令牌。)

当用户更改他们的密码时,我希望使他们可能拥有的令牌无效,可能是在其他设备上。有什么方法可以明确地做到这一点吗?我进行了实验,看到现有的令牌在密码更改后没有任何问题,这是应该防止的。

我考虑将密码散列或散列的一部分放入OAuth令牌中作为声明,并在派生的AuthorizeAttribute过滤器的OnAuthorization方法中进行验证。

这是解决问题的正确方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 08:01:54

我不建议将口令的散列作为声明,并且我相信当口令更改时没有直接方法使令牌无效。

但是,如果您对从客户端应用程序发送到受保护API端点的每个请求都可以命中数据库,那么您需要为授权给请求它的资源所有者的每个令牌存储令牌标识符(可能是Guid)。然后,您将token Identifier指定为该令牌的自定义声明,之后,您需要通过查找令牌标识符和资源所有者的用户名,为每个请求检查该表。

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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26776322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档