服务器和客户端身份验证:如何从服务器创建Firebase身份验证令牌并将其发送到web客户端?
我正在尝试使用来自服务器的电子邮件和密码验证我的用户,使用firebase并将生成的令牌发送到客户端 在服务器端,我使用nodejsfirebase函数,使用firebase rest auth API创建令牌,使用verifyPassword端点,然后使用生成的令牌将其发送到客户端 我正在客户端中使用firebase.auth().signInWithCustomToken(token)尝试登录,但我得到了一个无效的token响应 我试图做的是允许在服务器和WebClient的两侧对用户进行身份验证服务器和客户端身份验证:如何从服务器创建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的两侧对用户进行身
这是可能的还是有更好的方法?您可以将客户端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包