.Net Core Api - 基于令牌的身份验证限制删除表中的任何记录问题
Posted
技术标签:
【中文标题】.Net Core Api - 基于令牌的身份验证限制删除表中的任何记录问题【英文标题】:.Net Core Api - Token Based Authentication Restrict Delete Any Record In A Table Problem 【发布时间】:2021-12-28 18:00:49 【问题描述】:我正在.NET Core 上开发 Web API。我添加了基于令牌的身份验证(JWT)的身份验证方法来验证用户。我可以为用户生成令牌并验证令牌是否过期。但是,我尝试使用 A 用户的令牌删除 B 用户的记录,并使用 A 用户的令牌成功删除 B 用户的记录。如何限制用户,让他们只能删除自己的记录?
我找不到任何解决方案。
【问题讨论】:
请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:我认为您应该手动处理这种验证。 jwt 令牌应该包含用户的 ID,如果在您的应用中正确配置了身份验证,您应该能够从访问令牌中访问请求者用户的 ID,类似于:
User.Claims.First(x => x.Type == "id").Value;
您可以在https://jwt.io/ 上查看您的 jwt 令牌的内容。
获得用户 ID 后,您可以返回例如403 HTTP 状态码,当 jwt 令牌中的用户 ID 与要删除的记录的用户 ID 不同时。
【讨论】:
以上是关于.Net Core Api - 基于令牌的身份验证限制删除表中的任何记录问题的主要内容,如果未能解决你的问题,请参考以下文章