我正在使用 Jwt 令牌身份验证构建一个 Api,在刷新令牌方法中,我使用官方的 JwtSecurityTokenHandler.ValidateToken() 方法验证令牌,然后我从数据库获取用户。我的问题是,如果验证成功,但未找到用户,我是否应该返回 404 用户未找到或 401 未经授权?
404 因为
401 因为
链接到 JwtSecurityTokenHandler.ValidateToken() 微软文档:https://learn.microsoft.com/en-us/dotnet/api/system.identitymodel.tokens.jwt.jwtsecuritytokenhandler.validatetoken?view=msal-web-dotnet-最新
我正在学习,请放轻松,谢谢
401 不是解决方案,因为您的凭据在正确的标头中给出并且有效(所以也没有 403)
404 是解决方案,因为您的用户在数据库中不存在。
然而,这里的主要问题是“为什么要事先为不存在的用户伪造一个有效的令牌?”。这就是为什么您需要在与 404 一起发送的正文中解释问题,状态代码本身仅代表所发生情况的全局概念。
不像404那样泄露太多,所以更安全
不存在您想要的“安全”问题,令牌有效并且用户已被授予访问部分应用程序的权限。为什么事后要隐藏任何有关它的信息,有效的连接已经存在