首页 > 解决方案 > Firebase Admin SDK 从服务器登录用户

问题描述

我一直在我的 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)
    })

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

firebase admin SDK 上有一种方法可以通过 Email 获取用户信息admin.auth().getUserByEmail(email)。此方法返回包括密码在内的所有用户信息,但该密码是经过哈希处理的。所以现在有什么解决方法可以让来自服务器的正确身份验证用户。

标签: node.jsfirebasefirebase-authenticationfirebase-admin

解决方案


我的评论有点晚了,但一种选择是直接使用 Firebase REST API,但集成到您自己的服务器端 API 中进行身份验证。然后结合使用它和 Admin SDK 将其全部打包。REST API 文档可以在这里找到https://firebase.google.com/docs/reference/rest/auth/#section-sign-in-email-password。您可以通过您自己的 API 让您的客户端保持轻量级并封装所有 Firebase 身份验证内容、自定义声明、登录、注销等。您只需要使用这两种方法即可。这将使您从应用程序和 API 中的任何依赖项中抽象出来,因为您可以将它们全部放在一个服务提供商中。只是深思熟虑。


推荐阅读