Osa*_*ãñz 1 node.js firebase firebase-authentication firebase-admin
我一直在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)
})
Run Code Online (Sandbox Code Playgroud)
但是现在如何像auth.signInWithEmailAndPassword(email, pass)Firebase Client SDK中的方法那样使用户登录。
firebase admin SDK上有一种方法可以通过Email获取用户信息admin.auth().getUserByEmail(email)。此方法返回所有用户信息,包括密码,但该密码被散列。因此,现在有任何变通办法可以从Server获得适当的身份验证用户。
无法使用 Admin SDK 登录用户。Admin SDK 以管理权限运行,无需登录。
您需要使用 Firebase 客户端 SDK 之一(例如,适用于 Android、iOS 或 Web 用户)让您的用户直接从客户端代码登录到 Firebase。
如果您希望服务器端代码知道哪个用户登录,则可以将令牌从客户端发送到服务器,然后在服务器上对其进行解码和验证。请参阅有关验证 ID 令牌的文档以及使用 Cloud Functions 进行服务器端身份验证的示例。
小智 7
我的评论有点晚了,但一种选择是直接使用Firebase REST API,但集成到您自己的服务器端API中进行身份验证。然后结合使用它和Admin SDK将其全部打包。REST API文档可在https://firebase.google.com/docs/reference/rest/auth/#section-sign-in-email-password中找到。您可以通过自己的API减轻客户端的负担,并包装所有Firebase身份验证内容,自定义声明,登录,注销等。您只需要使用两种方法即可。这将使您摆脱应用程序和API中的任何依赖关系,就像将它们全都放在一个服务提供商中一样。值得深思。
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |