Flask是python的轻量级web框架,Flask-Principal是一个flask的权限框架。主要是用户认证和权限控制的功能。
认证只提供了基础结构:
1.用户认证通过后,将用户身份(identity)存储在session中。
2.用户登出系统后清理session,一般的做法是将用户的身份变为AnonymousIdentity。
除此之外没有提供更多的东西,但是通过identity_saver这个Decorator提供了扩展。Flask-Principal通过信号(signal)与Flask进行交互,从而满足低耦合。Flask-Principal定义了两个重要的signal:
identity_changed:用户身份变化时发送。
identity_loaded:用户权限载入时发送。
在用户登录认证成功后,通过发送identity_changed信号告知Flask-Principal用户登录成功,Flask-Principal会调用所有saver。所以,可以通过使用identity_saver注解定义自己的saver,保存需要保存的信息。