flask-login: Chrome игнорирует срок действия cookie?

у меня есть аутентификация, работающая с Flask-login, но похоже, что независимо от того, что я использую для продолжительности cookie в flask, сеанс все еще аутентифицируется. Правильно ли я устанавливаю переменные конфигурации для Flask-login? Я пытался

app.REMEMBER_COOKIE_DURATION = datetime.timedelta(seconds=30)
app.config["REMEMBER_COOKIE_DURATION"] = datetime.timedelta(seconds=30)

даже если я закрою браузер, подождите некоторое время и нажмите url, который должен быть защищен, я все равно могу получить к нему доступ. Это связано с эта проблема с chrome?. Если я очищаю свои куки, я получаю ожидаемую страницу входа. Все это заставляет меня думать, что тайм-аут cookie не соблюдается.

кроме того, что значит PERMANENT_SESSION_LIFETIME сделать в колбу?

1 ответов


REMEMBER_COOKIE_DURATION используется для функциональности "Запомнить меня", то есть, как долго запоминать вошедшего пользователя, даже если он закрыл браузер. Для этого используется отдельный файл cookie, имя которого можно установить с помощью REMEMBER_COOKIE_NAME (remember_token по умолчанию). Чтобы заставить сеанс входа истекать через некоторое время (даже если браузер все еще работает), установите PERMANENT_SESSION_LIFETIME где-то, где вы держите настройки приложения:

PERMANENT_SESSION_LIFETIME = datetime.timedelta(minutes=30)

и в вашем логин view set session.permanent = True:

from flask import session

@app.route('/login')
def login():
    # ...
    if login_user(user):
        session.permanent = True
        return redirect(request.args.get('next') or url_for('index'))
    # ...