【问题标题】:How to get a user's hashed password and hashed salt from firebase authentication onCreate trigger?如何从firebase身份验证onCreate触发器中获取用户的散列密码和散列盐?
【发布时间】:2022-01-04 11:44:56
【问题描述】:

我正在尝试使用 onCreate 身份验证触发器访问用户的哈希密码和哈希盐,但我总是得到它们两个的空值,但是我正常获取其他用户的值。

exports.savePasswordsInfo = functions.auth.user().onCreate((user) => {
  functions.logger.log("hash: ",user.passwordHash);
  functions.logger.log("salt: ",user.passwordSalt);
  functions.logger.log(user)
});

为什么会这样?

【问题讨论】:

    标签: node.js firebase-authentication google-cloud-functions


    【解决方案1】:

    如果您阅读这些属性的定义,它会说:

    1. 如果未设置密码,则为空。
    2. 仅当用户从listUsers()获取时可用。

    新用户是使用电子邮件密码验证创建的吗?即使是,user 对象也会将这些值设为空。您可以在以下 Github 问题中阅读更多相关信息:

    Why is passwordHash and passwordSalt only available with listUsers()?


    如果您还想将用户密码存储在 Firestore 中,那么您可以在 Cloud Function 本身中创建用户:

    exports.createUser= functions.https.onCall((data, context) => {
      // 1. Read user email and pass from data
      // 2. Store the information in Firestore
      // 3. Create a user in Firebase Auth
    });
    

    【讨论】:

    • 谢谢!我想获取用户的密码,对其进行哈希处理,然后将其存储在 Cloud Firestore 中,我不想在注册方法中完成所有这些工作。而且由于我不能使用 onCreate 触发器来做到这一点,有什么办法可以做到吗?
    • @AliOz 然后您可以在云函数本身中完成所有处理,而不是使用 Firebase 客户端 SDK 来创建用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多