在网上登录后如何获取用户ID令牌

时间:2019-12-10 13:30:53

标签: javascript firebase firebase-authentication

我将firebase-admin用于node.js,将firebase用于react。 我想获取访问令牌以将其发送到标头中的服务器,以保护我的数据。 我在React应用上使用此代码

firebase.auth().signInWithEmailAndPassword(form.elements.email.value, form.elements.password.value)
                .then((result) => {
                        console.log(result)
                })
                .catch(function(error) {
                    var errorCode = error.code;
                    var errorMessage = error.message;
                    console.log(errorMessage);
                });

但是我不知道如何从结果中获取令牌。 还是我有一些方法可以在服务器上使用API​​? 它应该像这样工作: 如果用户想进入管理面板,则应登录。客户端获得令牌,是否在cookie中设置并与任何请求一起使用?

1 个答案:

答案 0 :(得分:0)

signInWithEmailAndPassword返回的数据中没有ID令牌。相反,您可以做的是遵循documentation,并在登录完成后使用getIdToken()来获取令牌。

firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
  // Send token to your backend via HTTPS
  // ...
}).catch(function(error) {
  // Handle error
});

链接的文档继续说明如何使用Firebase Admin SDK在后端验证令牌。