Flask-Principal 知识点

Flask-Principal 资料 网址
官方中文文档 https://flask-principal-cn.readthedocs.io/zh_CN/latest/
官方英文文档 https://pythonhosted.org/Flask-Principal/
github https://github.com/mattupstate/flask-principal

Flask-Principal 是一个 Flask 扩展(用户权限框架), 框架主要部分包含身份(Identity),需求(Needs),权限(Permission),和包含身份信息的上下文环境(IdentityContext)。

Flask 中的每一个 user 都会拥有一种 Identity, 而每一种 Identity 又会被关联到一个 Needs. Flask-Principal 提供了两种 Needs(RoleNeed/UserNeed). Needs 本质上是一个 namedtuple(具名元组) EG. ("role", "admin"), 其定义了在这个 Identity 能做什么事情. 也就是说 Permission 其实是通过 Needs 来定义和初始化的, 其中 Permission 可以是一个权限的集合.

除此之外, Flask-Principal 是通过信号(signal)来与 Flask 应用进行交互的,满足了低耦合的理念。其定义了两个重要的signal:

  1. identity_changed:一般在用户身份变化时发送该信号, 在用户登录认证成功后,通过发送 identity_changed 信号告知 Flask-Principal 用户登录成功, 需要对用户的权限进行改变
  2. identity_loaded:一般在用户权限需要被载入时发送该信息. 通常在用户身份改变时, 就需要载入相应的权限.

以上出处:https://www.cnblogs.com/jmilkfan-fanguiju/p/7532263.html

posted on 2020-06-14 11:19  cag2050  阅读(506)  评论(0编辑  收藏  举报

导航