如何解决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 举报,一经查实,本站将立刻删除。