在firebase对象中查找auth.token数据的位置

在firebase对象中查找auth.token数据的位置,firebase,firebase-authentication,firebase-security,Firebase,Firebase Authentication,Firebase Security,我正在使用signInWithCustomToken,身份验证后,我找不到我在服务器端(createCustomToken)设置的自定义索赔数据的存储位置 我可以通过auth.token在firebase规则中看到它们,但如何从javascript代码中通过firebase对象访问它们。令牌中的信息不会自动用于应用程序代码。但它嵌入到令牌中,因此您可以自己解码: function parseJwt (token) { var base64Url = token.split('.')[1]

我正在使用
signInWithCustomToken
,身份验证后,我找不到我在服务器端(createCustomToken)设置的自定义索赔数据的存储位置


我可以通过auth.token在firebase规则中看到它们,但如何从javascript代码中通过firebase对象访问它们。

令牌中的信息不会自动用于应用程序代码。但它嵌入到令牌中,因此您可以自己解码:

function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace('-', '+').replace('_', '/');
    return JSON.parse(window.atob(base64));
};

var user = firebase.auth().currentUser
user.getToken().then(data => {
    console.log(parseJwt(data));
});
解析JWT的函数来自以下问题:


您将注意到,它不会验证ID令牌是否有效。在客户端代码中,这对我来说似乎很好,因为无论如何用户自己都会使用这些信息。但是,如果您确实想验证令牌,则必须使用更复杂的方法。

您尝试过这种方法吗<代码>var user=firebase.auth().currentUser是的,我尝试过,但在currentUser中找不到我的自定义属性。只是出于好奇,为什么用户对象中不包含这些信息,对我来说,在
signInWithCustomToken
之后,我的用户或auth()对象中可以使用所有自定义字段。