如何验证修改后的 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 令牌的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python_jwt 验证 firebase 令牌
如何验证由createCustomToken()创建的自定义Firebase验证令牌