[英]Flask session log out and redirect to login page
我正在為我的 web 應用程序使用 Flask,Python。 用戶將登錄,如果 session 時間超過 5 分鍾,則應用程序應該會出來,它應該登陸登錄頁面。
我嘗試了一些方法,我可以看到 session 超時正在發生,但重定向到登錄頁面沒有發生。
@app.before_request
def 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 如果會話過期,如果沒有活動並重定向登錄頁面,則注銷,但我沒有看到我之前嘗試過的內容和這段代碼有任何變化。 我可以在那里看到很多關於這個主題的 stackoverflow 問題,但我找不到解決方案。
我已經嘗試過這個鏈接 als Expire session in flask in ajax context
但我不確定我應該通過什么作為 session 以及我應該在這里返回什么限定符?
@mod.before_request
def make_session_permanent():
if session_is_invalid(session):
return redirect(url_for('logout'))
def session_is_invalid(ses):
# return your qualifier
如果前面的方法是正確的,有人可以告訴我 session 是什么,我應該在這里返回什么限定符?
我需要的是在 session 注銷之后頁面應該自動登陸登錄屏幕發生的事情是 session 正在注銷,但它沒有重定向到登錄頁面
有人可以幫我嗎?
當我閱讀Flask-Login
package 的文檔時,我看到了一些東西。 創建Flask
應用程序時,您還需要創建登錄管理器。
login_manager = LoginManager()
LoginManager
class 中的login_view
變量引起了我的注意。 詳細信息包括以下說明:
用戶需要登錄時重定向到的視圖名稱。(如果您的身份驗證機制在您的應用程序外部,這也可以是絕對的 URL。)
實際上,在您創建LoginManager
object 之后,
login_manager.login_view = 'your login view'
您應該指定您的登錄頁面。 最后,創建實際應用程序 object 后,您可以將其配置為登錄:
login_manager.init_app(app)
完成這些操作后,對您使用@login_required
注釋的每個方法的任何unauthorized
的調用都將發送到您使用login_view
指出的頁面。
我還開發了一個簡單的應用程序。 您可以從此處查看此應用程序。 我對其進行了測試並且沒有任何問題。
我希望它對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.