flask-login解讀


摘自:https://github.com/maxcountryman/flask-login/blob/master/docs/index.rst  

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_loader
def 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_required
def logout():
    logout_user()
    return redirect(somewhere)

累了,明天繼續。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM