首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖flask-security的登录?

如何覆盖flask-security的登录?
EN

Stack Overflow用户
提问于 2017-07-04 17:45:42
回答 2查看 3.3K关注 0票数 8

我想在用户登录时进行一些自定义。问题是该项目使用的是flask-security,它隐式地处理用户登录。当用户登录时,我想检查数据库中用户的一些记录。

如何覆盖flask-security中的"login“函数?

我看到了similar post,我试过了,但不起作用。另外,这也不是我想要做的。在某些用户的情况下,我可能需要停止默认行为。

那么,有谁有这样的问题吗?我该怎么做呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-05 01:26:09

您可以在设置Flask-Security时覆盖登录表单:

代码语言:javascript
复制
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore, login_form=CustomLoginForm)

然后创建扩展默认LoginForm的自定义登录表单类。并覆盖验证函数以在登录尝试之前或之后执行某些操作。

代码语言:javascript
复制
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“

问候,凯文;)

票数 12
EN

Stack Overflow用户

发布于 2020-11-16 01:57:22

注册flask安全扩展后,您可以创建具有完全相同的名称/路由的端点,并且它应该覆盖由Flask-security注册的端点。

如果您正在使用blueprints,请确保在注册Flask-security之前注册您的蓝图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44902506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档