当前flask-login版本中无reload_user函数,是怎么实现验证用户信息的?

发布于 2022-09-11 17:32:01 字数 525 浏览 21 评论 0

我在学习flask的时候接触到了flask-login这个扩展,对于user_loader这个装饰器很不理解
查询了很多文章/问答都提到user_loader这个装饰器将装饰的函数赋给了self.user_callback,
而reloader_user也是调用的方法,但我在github查询flask-login并没有找到reloader_user这个
函数,所问现在是什么替代了之前的reloader_user的实现?当用户非第一次登录,在已经登记的情况下
如何获取用户的登录信息的?谢谢!

flask-login的github:https://github.com/maxcountry...
我查到的相关文章:http://www.voidcn.com/article...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

权谋诡计 2022-09-18 17:32:01

我之前也纠结过这个问题,这个文章会让你很明白:https://segmentfault.com/q/10...

抱着落日 2022-09-18 17:32:01
@login_manager.user_loader
def load_user(user_id):
    ...

user_loader 就是告诉 flask-login 你的登录用户将从 load_user() 函数中取得.

我们分别以未登录和已登录两种情况来分析.
首先你要提供一个 User 接口, 像这样的

class MyUser(object):
    is_authenticated = False
    is_active = True
    is_anonymous = True
    def get_id():
        return None

假设当前用户命名为 currUser.

未登录

这时候 currUser.is_anonymousTrue, 表示匿名用户.
当用户提交帐号密码进行登录时, 你得从数据库中验证它, 通过后

  • currUser.is_authenticated 变成 True
  • currUser.is_anonymous 变成 False
  • currUser.get_id() 返回该用户的 登录帐号

然后调用 flask_login.login_user(currUser) 告诉 flask-login 该用户已经登录成功.

已登录

flask_login.current_user 变量引用当前用户, 退出登录时调用 flask_login.logout_user()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文