我想在用户登录时进行一些自定义。问题是该项目使用的是flask-security,它隐式地处理用户登录。当用户登录时,我想检查数据库中用户的一些记录。
如何覆盖flask-security中的"login“函数?
我看到了similar post,我试过了,但不起作用。另外,这也不是我想要做的。在某些用户的情况下,我可能需要停止默认行为。
那么,有谁有这样的问题吗?我该怎么做呢?
谢谢!
发布于 2017-07-05 01:26:09
您可以在设置Flask-Security时覆盖登录表单:
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore, login_form=CustomLoginForm)然后创建扩展默认LoginForm的自定义登录表单类。并覆盖验证函数以在登录尝试之前或之后执行某些操作。
from flask_security.forms import LoginForm
class CustomLoginForm(LoginForm):
def validate(self):
# Put code here if you want to do stuff before login attempt
response = super(CustomLoginForm, self).validate()
# Put code here if you want to do stuff after login attempt
return response"reponse“将根据登录是否成功而判断为True或False。如果要检查登录尝试期间可能发生的错误,请参阅"self.errors“
问候,凯文;)
发布于 2020-11-16 01:57:22
注册flask安全扩展后,您可以创建具有完全相同的名称/路由的端点,并且它应该覆盖由Flask-security注册的端点。
如果您正在使用blueprints,请确保在注册Flask-security之前注册您的蓝图。
https://stackoverflow.com/questions/44902506
复制相似问题