如何验证修改后的 Firebase 令牌

Posted

技术标签:

【中文标题】如何验证修改后的 Firebase 令牌【英文标题】:How to validate modified Firebase token 【发布时间】:2021-11-04 23:59:44 【问题描述】:

我正在使用 C# .NET 开发一个应用程序的后端,该应用程序与 JWT 一起使用以访问某些端点。现在我添加了与 Firebase JWT 令牌的兼容性,它们可以正常工作。

问题是前端正在修改此令牌以添加一些属性,例如用户的角色,但是我无法验证令牌,因为它给了我以下错误:

Bearer error="invalid_token", error_description="签名密钥是 未找到”, Bearer error="invalid_token", error_description="The 未找到签名密钥”

我不确定如何解决这个问题,因为我对 firebase JWT 仍然不太了解。

什么是让它发挥作用的正确方法?

【问题讨论】:

如果前端修改了令牌,它会使签名无效。这就是签名令牌的基本原理。为什么要验证无效的东西? 好的,那么向其中添加新属性的正确方法是什么? 无论你想添加什么,都必须由令牌的发行者在签名之前添加。但那是different question 【参考方案1】:

前端正在修改此令牌以添加一些属性,例如用户的角色

这似乎存在安全风险。如果前端代码设置了用户的角​​色,那么任何用户都可以为自己声明任何角色。

通常的方法是在受信任的环境中set custom claims,这样还可以确保令牌在该环境中正确签名。

【讨论】:

以上是关于如何验证修改后的 Firebase 令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Firebase 刷新令牌保持用户身份验证?

Firebase 云消息传递 - 如何验证令牌?

如何使用 python_jwt 验证 firebase 令牌

如何验证由createCustomToken()创建的自定义Firebase验证令牌

如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?

如何从 firebase_auth 获取令牌