Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将用户导入Firebase时密码错误(密码\u哈希使用SHA256)_Python_Firebase_Firebase Authentication_Firebase Admin - Fatal编程技术网

Python 将用户导入Firebase时密码错误(密码\u哈希使用SHA256)

Python 将用户导入Firebase时密码错误(密码\u哈希使用SHA256),python,firebase,firebase-authentication,firebase-admin,Python,Firebase,Firebase Authentication,Firebase Admin,我们使用SHA256散列的密码将用户从外部数据库迁移到Firebase Auth 我们目前尝试从firebase_admin import auth导入用户。我们可以导入示例用户,但不能使用该用户登录(密码错误) 下面是重现该问题的最少代码片段 我们以一个用户为例 我们使用sha256散列密码 运行import\u users\u to\u firebase() 尝试使用示例用户->无效密码登录 ` ` 我是错过了什么还是误解了什么 有没有办法检查密码\u哈希是否正确导入?或者,是否有一种方法可

我们使用SHA256散列的密码将用户从外部数据库迁移到Firebase Auth

我们目前尝试从firebase_admin import auth导入用户。我们可以导入示例用户,但不能使用该用户登录(密码错误)

下面是重现该问题的最少代码片段

  • 我们以一个用户为例
  • 我们使用sha256散列密码
  • 运行
    import\u users\u to\u firebase()
  • 尝试使用示例用户->无效密码登录
  • `

    `

    我是错过了什么还是误解了什么


    有没有办法检查密码\u哈希是否正确导入?或者,是否有一种方法可以配置Firebase使用的哈希算法,以便导入的密码与示例用户登录匹配?

    多亏了Firebase支持团队,我的问题得以解决:) 诀窍是不要在hash_password()中进行base64编码,也不要在之后对其进行解码,这样它就是一个原始字节序列。就是

    auth.ImportUserRecord(
        uid='someuid',
        display_name='Test example',
        email=mock_email,
        email_verified=False,
        password_hash=mock_password_hash, # <-- mock_password_hash is not base64 encoded
    )
    
    auth.ImportUserRecord(
    uid='someuid',
    显示\u name='Test example',
    电子邮件=模拟电子邮件,
    电子邮件\u验证=错误,
    
    password_hash=mock_password_hash,#密码不仅是散列的,而且是盐腌的。否则,有人可以使用带有预先计算的散列的彩虹表,只需查找密码散列即可破解所有密码
    auth.ImportUserRecord(
        uid='someuid',
        display_name='Test example',
        email=mock_email,
        email_verified=False,
        password_hash=mock_password_hash, # <-- mock_password_hash is not base64 encoded
    )