在Firebase对象内的哪里找到auth.token数据

Vla*_*yan 3 firebase firebase-security firebase-authentication

我正在使用signInWithCustomToken,经过身份验证后,找不到在服务器端设置的自定义声明数据存储在哪里(createCustomToken)。

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

Fra*_*len 5

令牌中的信息不会自动提供给您的应用程序代码。但是它嵌入在令牌中,因此您可以自己对其进行解码:

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));
});
Run Code Online (Sandbox Code Playgroud)

解析JWT的功能来自以下问题:如何在javascript中解码jwt令牌

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