Я новичок в флеш-каркасе и играю с ним, чтобы узнать его лучше. Я следую this учебным пособиям на моем пути.session.pop() не очищает файлы cookie
В соответствии с User Authentication учебник в серии, я застрял с ниже:
В учебнике, когда пользователь выходит из системы, нажав /logout
маршрут, то первое, что случается:
session.pop('logged_in', None)
Теперь, согласно видео, упомянутому выше, момент, когда пользователь попадает на маршрут /logout
, cookie также удаляется из браузера.
Сейчас 2 вопрос здесь:
- В моем случае, с точно такими же настройками, что и учебник, хотя сессия может быть получение недействительного с конца сервера, куки не удаляются/изменены в любом путь от браузера после того, как маршрут
/logout
попал. Что-то не так, что я делаю? session.pop(...)
=> как/почему именно он удалит что-то из передней части браузера. Он может управлять вещами только на сервере, не так ли?
Для справки ниже мой код (взято из самого учебника)
# import the Flask class from the flask module
from flask import Flask, render_template, redirect, url_for, request, session, flash
# create the application object
app = Flask(__name__)
app.secret_key = 'my precious'
# use decorators to link the function to a url
@app.route('/')
def home():
return "Hello, World!" # return a string
#return render_template(index.html)
@app.route('/welcome')
def welcome():
return render_template('welcome.html') # render a template
# route for handling the login page logic
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
session['logged_in'] = True
flash('You were just logged in')
return redirect(url_for('home'))
return render_template('login.html', error=error)
@app.route('/logout')
def logout():
session.pop('logged_in', None)
flash('You were just logged out')
return redirect(url_for('welcome'))
# start the server with the 'run()' method
if __name__ == '__main__':
app.run(debug=True)
я повторить то же самое замечание. Сеанс остался в браузере, несмотря на то, что приложение backend flask уже вытолкнуло его. Поэтому я думаю, что флэнд-бэкенд не может напрямую удалить сеанс в браузере. Мое лучшее предположение, возможно, есть тайм-аут, который нужно указать в сеансе? – ifelsemonkey