node.js - 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)
。此方法返回包括密码在内的所有用户信息,但该密码是经过哈希处理的。所以现在有什么解决方法可以让来自服务器的正确身份验证用户。
解决方案
我的评论有点晚了,但一种选择是直接使用 Firebase REST API,但集成到您自己的服务器端 API 中进行身份验证。然后结合使用它和 Admin SDK 将其全部打包。REST API 文档可以在这里找到https://firebase.google.com/docs/reference/rest/auth/#section-sign-in-email-password。您可以通过您自己的 API 让您的客户端保持轻量级并封装所有 Firebase 身份验证内容、自定义声明、登录、注销等。您只需要使用这两种方法即可。这将使您从应用程序和 API 中的任何依赖项中抽象出来,因为您可以将它们全部放在一个服务提供商中。只是深思熟虑。
推荐阅读
- java - Android Studio - 人脸检测失败。E/CameraSource:接收器抛出异常
- python - 用于提取多个模式的正则表达式
- python - 如何在 Keras 中将自己的词嵌入与预训练的嵌入(如 word2vec)一起使用
- python - 两个数组的最小值
- r - r 列 x 的总和按 y 列中的组的条形图
- proxy - Kubernetes 多 ApiServer
- karma-jasmine - 业力覆盖包括 node_modules
- html - Flexbox 项目不应该增长
- css - 使用 CSS3 动画设置间隔
- angular - 元数据版本不匹配 @netbasal/content-loader