[python] 플라스크에서 세션 시간 제한을 만드는 쉬운 방법이 있습니까?

사용자가 계정을 갖고 로그인 할 수있는 플라스크로 웹 사이트를 구축하고 있습니다. 일부 로그인 및 역할 관리를 위해 flask-principal을 사용하고 있습니다. 사용자 세션이 5 분 또는 10 분 후에 만료되도록하는 방법이 있습니까? 나는 플라스크 문서 나 플라스크 교장의 문서에서 그것을 찾을 수 없었다.

수동으로하는 방법을 생각하고 로그인 할 때 시간 태그를 사용하여 서버 측 변수를 설정하고 사용자가 다음 작업을 수행 할 때 서버는 해당 타임 스탬프의 타임 델타를 확인하고 세션을 삭제합니다.



답변

플라스크 세션은 영구 세션이없는 경우 브라우저를 닫으면 만료됩니다. 다음을 시도 할 수 있습니다.

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에서 영구 _session_lifetime은 31 일로 설정됩니다.


답변

예, 설정해야합니다

session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)

그러나 나는 그것을 설정해야한다고 생각하지 않습니다 app.before_request.

permanent_session_lifetimeA는 기본 구성 이 앱을 구성에서 설정해야합니다, 그래서 :

 from datetime import timedelta
 app = Flask(__name__)
 app.config['SECRET_KEY'] = 'xxxxxxxxx'
 app.config['PERMANENT_SESSION_LIFETIME'] =  timedelta(minutes=5)

session다른 클라이언트에서 구분 각 클라이언트에 대해 생성 된 의지. 따라서 설정하기에 가장 좋은 장소는 다음 session.permanent과 같은 경우입니다 login().

@app.route('/login', methods=['GET', 'POST'])
def login():
    #After Verify the validity of username and password
    session.permanent = True


답변