我想比较提供的密码是否等于getUser
密码
我已经尝试使用bcrypt,但我没有得到我想要的。
function(username,password) {
admin.auth().getUserByEmail(username)
.then( userRecord => {
if (userRecord.password == passsword){}
})
return true ;
}
但不起作用。
当比较不起作用时,如何使用bcrypt
进行比较
还基于散列密码的文档是:
* The user's hashed password (base64-encoded), only if Firebase Auth hashing
* algorithm (SCRYPT) is used. If a different hashing algorithm had been used
* when uploading this user, as is typical when migrating from another Auth
* system, this will be an empty string. If no password is set, this is
* null. This is only available when the user is obtained from
1条答案
按热度按时间sczxawaw1#
您没有粘贴文档中的完整信息:
用户的哈希密码(base64编码),仅当使用Firebase Auth哈希算法(SCRYPT)时。如果在上传此用户时使用了不同的哈希算法(通常在从其他Auth系统迁移时使用),则此密码将为空字符串。如果未设置密码,则此密码为null。仅当从**BaseAuth.listUsers()**获取用户时可用。
您使用的是
admin.auth().getUserByEmail(username)
,因此没有接收到passwordHash
属性。您需要使用文档中描述的List all users来检索哈希值。即使这样,如果不设置自定义IAM角色,您也无法检索它:
由于密码哈希的敏感性,默认情况下Firebase Admin SDK服务帐户没有
firebaseauth.configs.getHashConfig
权限。您无法直接向用户/服务帐户添加权限,但可以通过创建自定义IAM角色间接执行此操作。