繁体   English   中英

使用 PBKDF2 导入用户 hash 到 Firebase

[英]Importing user with PBKDF2 hash to Firebase

我正在尝试使用带有 firebase firebase-admin SDK 的节点脚本将用户从 MongoDB 数据库导入到 Firebase Auth。在旧系统中,密码使用PBKDF2 SHA256进行哈希处理,迭代25000次,并作为十六进制字符串存储在数据库中,还存储了单独的盐作为十六进制字符串。

const users = [{
 uid: <idFromLegacyDb>,
 email: <emailFromLegacyDb>,
 passwordHash: Buffer.from('passwordHashFromLegacyDb', 'hex'),
 passwordSalt: Buffer.from('saltFromLegacyDb', 'hex'),
}]

const importResult = await auth.importUsers(users, {
 hash: {
  algorithm: 'PBKDF2_SHA256',
  rounds: 25000,
 }
})
console.log(importResult)

导入成功完成,但从前端登录返回密码不正确,Firebase auth 中的用户条目存在但没有任何 passwordHash 字段。

任何想法为什么登录失败? 似乎无法从 auth go 找到任何日志来接近问题。 谢谢!

好的,解决了。

像大多数其他类似问题一样,结果证明是编码问题。 也许特定于我的遗留设置,但这是正确的代码:

const users = [{
 uid: <idFromLegacyDb>,
 email: <emailFromLegacyDb>,
 passwordHash: Buffer.from('passwordHashFromLegacyDb', 'hex'),
 passwordSalt: Buffer.from('saltFromLegacyDb', 'utf8'), // salt buffer should be decoded as utf8
}]

const importResult = await auth.importUsers(users, {
 hash: {
  algorithm: 'PBKDF2_SHA256',
  rounds: 25000,
 }
})
console.log(importResult)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM