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

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