我已经为 Web API 设置了身份验证,这与此处的博客几乎相同 oauth-refresh-tokens来自 Taiseer Joudeh。
在我遇到问题之前,它工作得很好:
- 我们有用户 A 和用户 B 当前登录到系统。
- 用户 A 作为管理员,从系统中删除用户 B。
- 用户 B 仍然有权访问网络直到 token 过期。
我做了一些研究,他们都说撤销访问 token 非常困难(或者在 OAuth 中不可能)。我唯一能做的就是将超时设置得更短。它仍然在我脑海中出现故障,我不喜欢访问 token 在之后的时间范围内(尽管是有限的)仍然有效的想法。
那么,有没有更好的方法或任何建议,我们将不胜感激。
最佳答案
按设计使用 refresh_token
和 access_token
并将访问 token 的生命周期缩短到您可以接受的持续时间,并尽可能短去。由于您既是资源服务器又是授权服务器,渐近线意味着无论如何您最终都会在每次通话中检查用户,正如其他答案中所建议的那样,但是:
使用数据库存储访问 token 很可能会导致缓存 token 以优化性能,在这种情况下,您最终会遇到与刷新 token 相同的情况,其中缓存过时超时相当于访问 token 的生命周期。
最后你不能既吃蛋糕又吃它,所以我建议按照 OAuth 的设计目的去做。
关于c# - 撤销 OAuthBearerAuthentication 的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27836338/