我正在使用SignInBackCustomToken
,在身份验证后,我找不到存储在服务器端(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的函数来自这个问题:如何在javascript中解码jwt令牌
您将注意到,它不会验证ID令牌是否有效。在客户端代码中,这对我来说似乎很好,因为无论如何用户自己都会使用这些信息。但是如果您确实想验证令牌,则必须使用更复杂的方法。