flask_login官方文档是:http://www.pythondoc.com/flask-login/
总结一下,在登录路由前,除了app,需要设置的有:User类(可以直接继承Usermixin),以及以下代码:
app.secret_key = os.urandom(24)
login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'login'
login_manager.login_message = u"用户未登录,请先登录。"
login_manager.init_app(app)
@login_manager.user_loader
def load_user(userid):
return User.get(userid)
这里最重要也是最容易出问题的是user_loader回调!因为它负责记录用户是否登录。但是按照文档配置后加了@login_required装饰器的路由怎么也无法通过用户验证。问题就在User里:
from flask_login import UserMixin
class User(UserMixin):
def __init__(self): #最好从数据库获取,或使用加密方式获取,这里只简单示例
self.id = 1
self.username