1. ホーム
  2. python

[解決済み] flaskでセッションをタイムアウトさせる簡単な方法はありますか?

2023-02-14 03:20:26

質問

flaskを使って、ユーザーがアカウントを持ち、ログインできるサイトを構築しています。 ログイン部分とロール管理にはflask-principalを使用しています。 ユーザーのセッションを5分または10分後に失効させる方法はありますか? flaskのドキュメントやflask-principalのドキュメントでは、そのような方法を見つけることができませんでした。

サーバーサイドの変数にログイン時のタイムタグを設定し、次のアクションでサーバーがそのタイムスタンプの時間差を確認し、セッションを削除する、という方法を思いつきました。

どのように解決するのですか?

flask のセッションは、永続的なセッションを持たない限り、ブラウザを閉じた時点で失効します。以下のような方法を試してみてください。

from datetime import timedelta
from flask import session, app

@app.before_request
def make_session_permanent():
    session.permanent = True
    app.permanent_session_lifetime = timedelta(minutes=5)

Flaskのデフォルトでは、permanent_session_lifetimeは31日間に設定されています。