如何将Firebase自定义标记中的其他字段重新转换为“UserInfo”

时间:2016-07-07 13:09:18

标签: android firebase firebase-authentication

我正在使用自定义令牌方法在firebase中进行身份验证。 从服务器,我得到的JWToken除了其他令牌字段外还有以下数据:

{ "uid" : "user_uid", "user_role": "admin" }

在Firebase 2.x中:

我们曾经将令牌字段提取为 -

authData.getAuth().get("user_role").toString();

但在新的Firebase SDK中:

如何从令牌获取数据(“user_role”的值)。

  

注意:我尝试使用 UserInfo 获取“user_role”的值,   但是没有方法/方法来获取这样的自定义字段。

1 个答案:

答案 0 :(得分:3)

可以在实时数据库和存储的Firebase安全规则中访问其他声明。

在客户端,由于JWT声明只是编码到令牌中,因此您可以解码令牌并查看声明。您可以使用jwt-decode库在浏览器上执行此操作。解码后,您将能够看到所有自定义身份验证声明。

您还可以将声明存储在各个用户的实时数据库本身中。节点,并在需要时从那里读取它。然后,您可以为该节点设置规则,以便只有登录用户才能阅读自己的声明。