【问题标题】:How to add parameters to User class in Flask-Security如何在 Flask-Security 中向用户类添加参数
【发布时间】:2013-06-07 22:45:34
【问题描述】:

我正在尝试在我的用户类中为 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 的设置来执行此操作。

【问题讨论】:

    标签: python flask flask-security


    【解决方案1】:

    好的,我通过简单地保持上面的 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-02
      • 2013-09-13
      • 2014-08-11
      • 2019-03-24
      • 1970-01-01
      • 2011-09-19
      • 2018-04-10
      • 1970-01-01
      相关资源
      最近更新 更多