flask-login解读

flask-login为flask提供用户的session管理机制。它可以处理登陆、退出和session等的服务。

  作用:

    1.将用户的id储存在session中,方便登陆、退出等流程。

    2.Let you restrict views to logged-in (or logged-out) users

    3.处理“remember me”的功能。

    4.避免session被cookies保存。

    5.集成到flask。

  不能实现的功能:

    1.数据库功能

    2.限制使用用户名和密码,openid等认证方法。

    3.处理登陆之外的权限。

    4.处理用户注册和账户恢复。

  配置你的应用:

    首先需要创建一个LoginManager类:

login_manager = LoginManager()

    login Manager将你的应用和flask-login联系起来,例如通过id来找到对应的用户,或者当用户登陆时候需要如何处理。在应用创建的时候,导入如下代码:

login_manager.setup_app(app)

  如何工作:

  你需要添加一个~LoginManager.user_loader回调函数,它的作用是根据id找到对应的user,例如:

@login_manager.user_loaderdef load_user(userid):    return User.get(userid)

  如果没有找到,返回None。此时的id将会自动从session中移除。

  一旦用户认证通过,直接调用login_user函数:

复制代码

@app.route("/login", methods=["GET", "POST"])def login():
    form = LoginForm()    if form.validate_on_submit():        # login and validate the user...        login_user(user)
        flash("Logged in successfully.")        return redirect(request.args.get("next") or url_for("index"))    return render_template("login.html", form=form)

复制代码

  当用户退出时:

@app.route("/logout")
@login_requireddef logout():
    logout_user()    return redirect(somewhere)


你可能感兴趣的:(flask,login)