gpt4 book ai didi

Flask Admin - 创建新用户时自动创建密码哈希?

转载 作者:行者123 更新时间:2023-12-03 16:16:21 25 4
gpt4 key购买 nike

假设我有一个用户模型,例如:

class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(255))
last_name = db.Column(db.String(255))
email = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
registered_on = db.Column(db.DateTime, nullable=True)
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))

和管理员 View :
class UserView(MyModelView):

form_columns = (
'roles',
'first_name',
'last_name',
'email',
'password',
'registered_on',
)

form_args = dict(
registered_on=dict(default=datetime.now())
)

当我创建一个新用户时,如何使用 bcrypt 之类的东西自动生成密码哈希?

最佳答案

我发现的最简单的选择是添加 SQLAlchemy attribute eventUser.password并在那里散列密码(如果更改)。这样,无论何时从任何地方更改用户密码,它都会被自动散列。

from sqlalchemy import event
from werkzeug.security import generate_password_hash


@event.listens_for(User.password, 'set', retval=True)
def hash_user_password(target, value, oldvalue, initiator):
if value != oldvalue:
return generate_password_hash(value)
return value

关于Flask Admin - 创建新用户时自动创建密码哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com