首页 文章

Firebase Admin SDK从服务器登录用户

提问于
浏览
1

我一直在我的Node JS代码中使用Firebase Admin SDK来从服务器端验证用户 .

Admin SDK提供了一个方法 admin.auth().createUser() 来创建新用户 .

admin.auth().createUser({
        email,
        password,
        displayName: name
    })
    .then(function(user) {
        console.log("Successfully created new user:", user.uid)
        return res.send(user)
    })
    .catch(function(err) {
        console.log("Error creating new user:", err)
        return res.send(err)
    })

但现在如何让用户登录,就像Firebase客户端SDK中有一个方法 auth.signInWithEmailAndPassword(email, pass) .

firebase管理SDK上有一个方法可以通过电子邮件 admin.auth().getUserByEmail(email) 获取用户信息 . 此方法返回包括密码在内的所有用户信息,但密码已经过哈希处理 . 那么现在是否有任何解决方法可以从Server中正确验证用户身份 .

1 回答

  • 1

    无法使用Admin SDK登录用户 . Admin SDK以管理权限运行,无需登录 .

    您需要使用其中一个Firebase客户端SDK(例如,针对Android,iOS或网络用户)直接从客户端代码向Firebase用户签名 .

    如果您希望服务器端代码知道登录的用户,则将令牌从客户端发送到服务器,然后在那里进行解码和验证 . 请参阅document on verifying an ID tokensample of server-side authentication with Cloud Functions .

相关问题