【发布时间】:2019-07-29 14:20:17
【问题描述】:
我正在尝试使用 Firebase Cloud Functions 创建用户登录,但 admin.auth() 没有任何登录方法。所以我决定散列输入密码并检查它是否与该用户帐户的密码相同。当你这样做时:
exports.loginWithEmailAndPassword = functions.https.onRequest((req, res) => {
admin.auth().getUserByEmail(req.query.email)
.then((userRecord) => {
const user = userRecord.toJSON();
res.send(userRecord.toJSON())
})
.catch((error) => {
res.status(400).send(error);
})
})
输入用户电子邮件时的服务器响应是这样的:
{
uid: [USER UID],
email: [USER EMAIL],
emailVerified: false,
disabled: false,
metadata: {
lastSignInTime: "Tue, 16 Jul 2019 15:05:14 GMT",
creationTime:"Tue, 16 Jul 2019 15:04:28 GMT"
},
passwordHash: "UkVEQlNURUQ=",
tokensValidAfterTime: "Tue, 16 Jul 2019 15:04:28 GMT",
providerData: [
{
uid: [USER EMAIL],
email: [USER EMAIL]
providerId: "password"
}]
}
}
我认为 passwordHash 是经过哈希处理的密码字符串,所以登录时我将哈希输入字符串(密码)并检查经过哈希处理的输入是否等于passwordHash。这可能吗?
【问题讨论】:
标签: node.js firebase hash firebase-authentication google-cloud-functions