我正在為我的 Web 應(yīng)用程序使用 Flask、Python。用戶將登錄,如果會話時間超過 5 分鐘,那么應(yīng)用程序應(yīng)該會出現(xiàn),并且應(yīng)該登陸登錄頁面。我嘗試了一些方法,我可以看到會話超時正在發(fā)生,但重定向到登錄頁面沒有發(fā)生。@app.before_requestdef before_request(): "Session time out method" flask.session.permanent = True app.permanent_session_lifetime = datetime.timedelta(minutes=2) flask.session.modified = True flask.g.user = flask_login.current_user #return redirect(url_for('login'))我已經(jīng)使用 before_request 來查看超時。我已經(jīng)引用了這個鏈接Flask logout if sessions expires if no activity and redirect for login page 但我沒有看到我之前嘗試過的內(nèi)容和這段代碼有任何變化。我可以在那里看到很多關(guān)于這個主題的 stackoverflow 問題,但我找不到解決方案。我已經(jīng) 在 ajax 上下文中嘗試過這個鏈接 als Expire session in flask但是我不確定我應(yīng)該通過什么作為會話以及我應(yīng)該在這里返回什么限定符?@mod.before_requestdef make_session_permanent(): if session_is_invalid(session): return redirect(url_for('logout'))def session_is_invalid(ses): # return your qualifier如果以前的方法是正確的,有人可以告訴我會話是什么以及我應(yīng)該在這里返回什么限定符嗎?我需要的是在會話注銷后頁面應(yīng)該自動登陸登錄屏幕發(fā)生的事情是會話注銷正在發(fā)生但它沒有重定向到登錄頁面有人可以幫助我嗎?
1 回答

侃侃無極
TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個贊
當(dāng)我閱讀Flask-Login
包裹的文件時,我看到了一些東西。創(chuàng)建Flask
應(yīng)用程序時,您還需要創(chuàng)建一個登錄管理器。
login_manager = LoginManager()
課堂上的一個login_view
變量LoginManager
引起了我的注意。詳情包括以下說明:
用戶需要登錄時要重定向到的視圖的名稱。(如果您的身份驗(yàn)證機(jī)制在您的應(yīng)用程序外部,這也可以是絕對 URL。)
實(shí)際上,在你創(chuàng)建一個LoginManager
對象之后,
login_manager.login_view = 'your login view'
您應(yīng)該指定您的登錄頁面。最后,一旦創(chuàng)建了實(shí)際的應(yīng)用程序?qū)ο螅涂梢詫⑵渑渲脼榈卿洠?/p>
login_manager.init_app(app)
完成這些之后,unauthorized
對您使用注釋的每個方法的任何調(diào)用都@login_required
將發(fā)送到您用 指出的頁面login_view
。
我還開發(fā)了一個簡單的應(yīng)用程序。您可以從此處查看此應(yīng)用程序。我測試了它并且工作沒有任何問題。
我希望它能幫助你。
添加回答
舉報
0/150
提交
取消