簡體   English   中英

Flask session 注銷並重定向到登錄頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM