我很好奇使用UserTokens
表(它是 ASP.NET Identity模型的一部分)来存储刷新令牌。
更多上下文:我正在开发一个使用 JWT 持有者身份验证的非常简单的 Web API。因此,与刷新令牌不同,我不需要在数据库中存储身份验证令牌。本文说UserTokens
表旨在存储身份验证令牌,但由于我在数据库中不需要它们,因此该表只是在没有任何工作的情况下闲逛。
所以问题是:UserTokens
表在高质量代码、语义准确性和可维护性方面有多适合存储刷新令牌?
我相信你在这里混合了一些场景。
-
API 是一个身份提供程序,能够授权用户并生成刷新/持有者令牌
-
API 是身份数据使用者,即使用令牌并对其进行验证,如果令牌正常,则提供对终结点的访问。
在第一种情况下,您可能需要刷新令牌,显然还需要它们的存储。在以后,这是没有用的。
另外,API 可能希望缓存经过验证的令牌并短期存储它们,因为验证过程可能需要对第三方身份提供程序进行 https 调用(检查证书等)。
简短的回答是否,您很可能不需要它,除非您不构建标识提供者。
至于默认ASP网络的可维护性,我强烈建议使用像这样的现成的OOB设计 https://github.com/topics/oauth2-server?l=c%23 或类似的设计。默认 ASP.Net 实现需要大量的调整和努力才能获得生产就绪质量
编辑 1:还要注意这个胎面 为什么 OAuth v2 同时具有访问令牌和刷新令牌? 并很好地解释了刷新令牌实时循环。