c# - 使用 jwt 验证后验证用户操作

标签 c# firebase asp.net-core jwt

我有一个带有 Firebase 身份验证的应用程序。现在我有一个问题,任何拥有有效 jwt 的用户都可以访问任何其他用户的数据。

例如,我可以使用有效的 jwt 向我的端点之一(即“照片/用户/{id}”)发出请求,并通过将任何 {id} 传递到端点,我将收到该用户的数据。在我的例子中,我们通过系统内部的电子邮件来识别用户。而且我可以成功地从 token 中检索用户的电子邮件。但主要问题是——我现在是否需要将从 token 接收的电子邮件传递给每项服务,这样我就可以检查它实际上是 token 所有者试图访问他的数据,而不是其他拥有有效 token 的人。到目前为止,我已经尝试为授权属性创建自定义策略,但要处理的情况太多,我想它最终会非常脆弱

最佳答案

您应该将端点更改为 photos/user 并将 token 传递给 header 中的操作。

然后您可以使用 token 从 token 中检索正确的用户并返回通过 token 验证的用户的详细信息,同样可以应用于任何其他端点,不要传入用户 ID但使用 token 从身份验证 token 中获取用户 ID

关于c# - 使用 jwt 验证后验证用户操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723853/

相关文章:

c# - 为什么我需要使用 C# 嵌套类

android - 在 native react 中从android模拟器连接到在模拟器上运行的云功能

java - 未从 firebase 获取 RecyclerView 的所有结果

.net - 使用 UseGoogleAuthentication

asp.net-core - Core 3.1 Blazor 应用程序中的 onclick 不起作用

c# - Asp.net核心继续使用过期的证书

c# - 当我使用依赖注入(inject)读取我的 Azure 函数的应用程序设置时,配置为空

c# - AOP 性能开销

c# - 如何确定 C# 中当前聚焦进程的名称

java - Android - 使用键查询节点 (Firebase)