我正在使用自定义令牌方法在firebase中进行身份验证。 从服务器,我得到的JWToken除了其他令牌字段外还有以下数据:
{ "uid" : "user_uid", "user_role": "admin" }
在Firebase 2.x中:
我们曾经将令牌字段提取为 -
authData.getAuth().get("user_role").toString();
但在新的Firebase SDK中:
如何从令牌获取数据(“user_role”的值)。
注意:我尝试使用 UserInfo 获取“user_role”的值, 但是没有方法/方法来获取这样的自定义字段。
答案 0 :(得分:3)
可以在实时数据库和存储的Firebase安全规则中访问其他声明。
在客户端,由于JWT声明只是编码到令牌中,因此您可以解码令牌并查看声明。您可以使用jwt-decode库在浏览器上执行此操作。解码后,您将能够看到所有自定义身份验证声明。
您还可以将声明存储在各个用户的实时数据库本身中。节点,并在需要时从那里读取它。然后,您可以为该节点设置规则,以便只有登录用户才能阅读自己的声明。