微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask Security更新密码不起作用

如何解决Flask Security更新密码不起作用

我正在尝试使用flask-Security更改密码。基本上,没有抛出任何错误,但是数据库中的哈希没有更新。创建初始密码时,一切正常。

但是,当我尝试使用update.py中的代码进行更新时,密码没有更新。感谢您的见解。谢谢。

update.py

buyer = Buyers.query.filter_by(id=buyer_id).first()
                    buyer.password = generate_password_hash(form.password.data)
                    db.session.commit()
                    flash('Password has been updated')

models.py

class Buyers(db.Model,UserMixin):
    __tablename__ = 'buyers'

    id = db.Column(db.Integer,primary_key=True)
    email = db.Column(db.String(64),unique=True,index=True,nullable=False)
    firstname = db.Column(db.String(64),nullable=False)
    lastname = db.Column(db.String(64),nullable=False)
    company = db.Column(db.Integer,db.ForeignKey('company.id'))
    password_hash = db.Column(db.String(128))

    def __init__(
        self,email,firstname,lastname,company,password
    ):
        self.email = email
        self.firstname = firstname
        self.lastname = lastname
        self.company = company
        self.password_hash = generate_password_hash(password)

    def check_password(self,password):
        return check_password_hash(self.password_hash,password)

解决方法

不能完全确定您要完成的工作-但是代码段中的User模型带有一个password_hash字段,而不是password。 Flask-Security需要某些定义的模型名称才能起作用。 不确定在哪里获取check_password_hash()和generate_password_hash()...。

Flask-Security更新密码的方式是:

user.password = hash_password(password)
_datastore.put(user)
_datastore.commit()

哦-我假设您是Flask-Security-Too(这是一个维护的分叉).....

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?