服务器和客户端身份验证:如何从服务器创建Firebase身份验证令牌并将其发送到web客户端?

服务器和客户端身份验证:如何从服务器创建Firebase身份验证令牌并将其发送到web客户端?,firebase,firebase-authentication,google-cloud-functions,Firebase,Firebase Authentication,Google Cloud Functions,我正在尝试使用来自服务器的电子邮件和密码验证我的用户,使用firebase并将生成的令牌发送到客户端 在服务器端,我使用nodejsfirebase函数,使用firebase rest auth API创建令牌,使用verifyPassword端点,然后使用生成的令牌将其发送到客户端 我正在客户端中使用firebase.auth().signInWithCustomToken(token)尝试登录,但我得到了一个无效的token响应 我试图做的是允许在服务器和WebClient的两侧对用户进行身

我正在尝试使用来自服务器的电子邮件和密码验证我的用户,使用firebase并将生成的令牌发送到客户端

在服务器端,我使用nodejsfirebase函数,使用firebase rest auth API创建令牌,使用verifyPassword端点,然后使用生成的令牌将其发送到客户端

我正在客户端中使用firebase.auth().signInWithCustomToken(token)尝试登录,但我得到了一个无效的token响应

我试图做的是允许在服务器和WebClient的两侧对用户进行身份验证


这是可能的还是有更好的方法?

您可以将客户端idToken发送到服务器,如中所述,并在服务器上使用firebase admin创建会话Cookie

admin.auth().createSessionCookie(idToken, {expiresIn})
    .then((sessionCookie) => ...
我有一个项目,当客户端的身份验证状态更改时,我将idToken发送到服务器:

firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.
        user.getIdToken().then(idToken => {
          sendTokenToServer(idToken,csrfToken);
        });
      } else {
        clearCookiesOnServer(...);
      }
    });

谢谢,我要更改我的身份验证approach@lombardo我需要帮忙。您如何使用sendTokenToServer()向服务器发送令牌?还有从哪里获得idToken和csrfToken。我正在使用ajax post向服务器发出创建会话cookie的请求。idToken由getIdToken返回,然后作为请求的一部分发送;对于csrfToken,我使用的是csurf包