我正在尝试使用来自服务器的电子邮件和密码,使用Firebase并将用户生成的令牌发送给客户端来对我的用户进行身份验证。
在服务器端,我正在使用nodejs firebase函数,并且令牌是使用 firebase rest auth API 和 verifyPassword创建的端点,然后我使用生成的令牌并将其发送给客户端。
我正在客户端 firebase.auth()。signInWithCustomToken(token)中尝试登录,但收到的无效令牌响应。< / p>
我想做的是允许对服务器,服务器和WebClient双方的用户进行身份验证
这有可能还是有更好的方法呢?
答案 0 :(得分:2)
您可以按照Firebase Auth Documentation中的说明将客户端idToken发送到服务器,并且可以在服务器上使用firebase admin创建Session-Cookie
admin.auth().createSessionCookie(idToken, {expiresIn})
.then((sessionCookie) => ...
我有一个项目,当客户端的Auth-State更改时,我将idToken发送到服务器:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
user.getIdToken().then(idToken => {
sendTokenToServer(idToken,csrfToken);
});
} else {
clearCookiesOnServer(...);
}
});