0

我正在尝试在我的用户类中为 API 密钥添加另一列。但是,在使用 Flask-Security 时,我的 kwargs 出现错误。

class User(db.Model, UserMixin):
    __tablename__ = 'usermod'
    id = db.Column(db.Integer(), primary_key=True)
    email = db.Column(db.String(120), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    api_key = db.Column(db.String(256))
    roles = db.relationship('Role', secondary=roles_users, backref=db.backref(
        'users', lazy='dynamic'))

此外,我正在尝试使用我自己的函数在注册后为每个用户generate_key()填写字段。api_key这是因为我正在使用 Flask-Security 的内置app.config['SECURITY_REGISTERABLE'] = True字段。我不确定如何覆盖 Flask-Security 的设置来执行此操作。

4

1 回答 1

0

好的,我通过简单地保持上面的 User 类来解决这个问题。但是要添加我自己的函数,我必须使用如下信号:

@signals.user_confirmed.connect_via(app)
def user_confirmed_sighandler(app, user):
    user.api_key = generate_key()
    return

这发生在用户在电子邮件中确认他们的注册之后,而不是在注册时(在这种情况下,您将使用@signals.user_registered.connect_via(app).

于 2013-06-07T14:45:34.870 回答