提问者:小点点

在Firebase对象中查找auth.token数据


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

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


共1个答案

匿名用户

令牌中的信息不会自动提供给应用程序代码。但它嵌入了令牌,所以你可以自己解码:

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的函数来自这个问题:如何在javascript中解码jwt令牌

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