flask-login 初识
一、在简单应用中的配置示例
1.在初始化 application 时注册一个 LoginManager 实例对象
from flask_login import LoginManager
login_manager = LoginManager()
def create_app(config_type='default'):
config_class = config[config_type]
app = Flask(__name__)
app.config.from_object(config_class)
login_manager.init_app(app)
return app
2.使用 HTTP 头或者一个作为查询参数的 api 密钥。这种情况下,你应该使用 request_loader 回调
from application import login_manager
@login_manager.request_loader
def load_user_from_token(request):
# 从token中验证身份的示例函数
token = request.headers.get('Authorization')
if not token:
return None
else:
try:
data = JwtTool.verify_jwt(token)
except InvalidSignatureError:
return None
user = User.query.filter_by(id=data['userid']).first()
if user:
return user
else:
return None
3.在需要验证身份的视图中使用装饰器修饰
from flask_login import login_required
class Example(Resource):
method_decorators = {'post': [login_required]}
def get(self):
pass
def post(self):
pass
4.重定向。默认情况下,当未登录的用户尝试访问一个 login_required 装饰的视图,Flask-Login 会闪现一条消息并且重定向到登录视图。(如果未设置登录视图,它将会以 401 错误退出。)
from application import login_manager
login_manager.login_view = "users.login"
login_manager.login_message = u"Bonvolu ensaluti por uzi tio pa臐o."
参考:
1.http://www.pythondoc.com/flask-login/index.html#flask.ext.login.LoginManager.user_loader