Удалить сессионный cookie в форме входа в систему с помощью приложения Flask - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над простым приложением Flask, которое состоит из двух частей;Первая часть - это форма для входа (login.html), где пользователь должен заполнить какой-то идентификационный номер.Когда нажата кнопка «Отправить», идентификационный номер сохраняется в файле cookie, и отображается вторая страница (index.html).

Я заметил нежелательное поведение: при перезагрузке второй страницы первая страница с формой входаправильно отображается (и cookie удаляется).Однако, если я снова нажму кнопку перезагрузки , вторая страница будет загружена файлом cookie.

Я прошу любые советы по удалению файла cookie.

Файл колбы выглядит следующим образом:

from flask import Flask, request, render_template, session, redirect, url_for

app = Flask(__name__)
app.secret_key = 'abc'

@app.route('/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        if session.get('logged_in') is None:
            session['id_number'] = request.form['id_number']
            session['logged_in'] = True
            return render_template('index.html')
    return render_template('login.html')


@app.route('/logout')
def logout():
    session.clear()
    return redirect(url_for('login'))

if __name__ == '__main__':
app.run(debug=True, port=5000)

Здесь также находится основная часть файла login.html:

<script type="text/javascript">
window.onload = function (e) {    
$.ajax({
    type: 'GET',
    async: false,
    url: '/logout',
    data: { IsRefresh: 'Close' }
   });
};
</script>
<form action="{{ url_for('login')}}" method="post">
  <input type="text" name="id_number" id="id_number">
  <input type="submit" name="submit" value="Enter">
</form>

1 Ответ

0 голосов
/ 27 октября 2018

Я думаю, вы должны использовать return redirect(url_for('index', var=var)) вместо return render_template('index.html'), кроме того, вы должны проверить эту разницу , Существует разница между шаблонами рендеринга и использованием функции перенаправления.

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