我是烧瓶的新手,但对 python 有一定的了解——我有一个烧瓶应用程序,它使用烧瓶安全性进行用户身份验证。我想在用户登录过程中添加一些额外的功能。具体来说,我需要在用户登录时将用户的 auth_token(我设置为一次性令牌)保存到数据库,并在他们注销时将其删除。问题的出现是因为flask-security 没有(据我所知)将登录机制直接暴露给开发人员。据我从代码中可以看出,它导入了使用 login_user 函数的烧瓶登录。
我首先尝试通过导入 flask.ext.login (通常我不需要这样做)并重新定义该函数来覆盖此函数,如下所示:
import flask.ext.login as a
def new_login_user():
...copy of existing function goes here...
...Plus new stuff with current_user.get_auth_token()...
a.login_user = new_login_user
然而,我遇到了各种各样的命名空间问题,这似乎是一种非常丑陋的方法。
我在想可能有一种方法可以使用装饰器,但我是烧瓶的新手,无论如何都没有使用过装饰器。
关于解决此问题的最佳方法的任何想法可能是什么?对于上下文,我想要数据库中的 auth_token,因为我需要将网站身份验证传递给另一个进程,该进程也访问数据库。另一个进程是使用 websockets 的 API 服务器。我不想合并这些过程。