无法在python中使用firebase admin sdk比较密码

问题描述 投票:0回答:1

我正在python中使用firebase的admin-SDK

我使用以下代码创建了一个新用户

user = auth.create_user(
        email=email,
        email_verified=False,
        password=password,
        display_name=name,
        disabled=False)

现在我已经创建了一个函数,该函数从用户那里获取name,_email ID _和password并使用其电子邮件ID提取用户,然后检查输入的详细信息是否正确。

def check_user(self, name, email, password):  # fixme compare password
    user = auth.get_user_by_email(email)
    if user.display_name == name and user.email == email:# add password comparision
        print('successful login')
        return True
    else:
        print('username or password incorrect')
    return False

我想将输入的密码与存储的密码进行比较,但由于无法访问密码,因此无法进行比较,我只能使用user.passwordHash访问passwordHash,使用user.passwordSalt访问passwordSalt。

有没有可以找到的passwordHash或passwordSalt,所以我可以比较哈希值。

python firebase firebase-authentication firebase-admin admin-sdk
1个回答
0
投票
使用Firebase身份验证的通常流程是,您的用户使用直接使用Firebase SDK的客户端代码登录。所以在那种情况下Firebase本身将执行密码是否正确的检查。

可以自己执行检查,但是您必须在代码中对用户的纯文本密码进行哈希处理,然后比较存储的和计算得出的哈希值,从本质上复制了Firebase已经执行的操作。 Firebase使用modified version of scrypt加密密码。

© www.soinside.com 2019 - 2024. All rights reserved.