Как заставить Chrome завершить сеанс в Flask при закрытии браузера? - PullRequest
0 голосов
/ 02 августа 2020

Я работаю над реализацией сеансов с Flask в Google App Engine, а Chrome (Linux) не завершает сеанс при закрытии браузера. Firefox работает нормально.

Chrome (Linux) Я вхожу в систему, и если я специально не выхожу из системы, сеанс сохраняется Chrome, когда я закрываю браузер и начинаю с пустая страница браузера. Я вижу, что создается повар ie с именем localhost. При проверке с помощью Chrome, срок действия ie действительно истекает при закрытии сеанса браузера. Я изменил настройки в Chrome, чтобы начать с новой вкладки (не там, где он остановился в прошлый раз), но сеанс сохраняется.

Firefox (Linux) Работает, как ожидалось: я вхожу в приложение, закрываю браузер, и в следующий раз, когда я открываю браузер, я получаю экран входа в систему.

Вот main.py:

from flask import Flask etc etc

# Import Blueprints
from login_bp import login_bp

app = Flask(__name__)

#Register Blueprints
app.register_blueprint(login_bp)

# Set the cookie secret key to some random bytes. Keep this really secret!
app.secret_key = b'_@%@@^)_*_)!!^%&*'

@app.route('/')
def main():
    if 'username' in session:
        session.permanent = False
        message = "This site is for development purposes only"
        return render_template('main.html', username=session['username'], message=message) 
    return redirect(url_for('login_bp.login'))

@app.route('/logout')
def logout():
    # remove the username from the session if it's there
    session.pop('username', None)
    return redirect(url_for('login_bp.login'))
    

Схема входа в систему (login_bp.py):

from flask import Blueprint, render_template
from flask import session, redirect, url_for, escape, request

login_bp = Blueprint('login_bp', __name__)

@login_bp.route('/login', methods=['GET', 'POST'])

def login():
    message = 'Some blurb' 
    if request.method == 'POST':
        session['username'] = request.form['username']
        session.permanent = False
        return redirect(url_for('main'))

    return render_template('login.html', message=message) 

Есть идеи, как заставить Chrome завершить сеанс при закрытии браузера?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...