사용자가 계정을 갖고 로그인 할 수있는 플라스크로 웹 사이트를 구축하고 있습니다. 일부 로그인 및 역할 관리를 위해 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_lifetime
A는 기본 구성 이 앱을 구성에서 설정해야합니다, 그래서 :
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