Python session.pop()不清除Cookie
我对Flask框架还不熟悉,正在尝试更好地学习它。我在沿途跟随教程 根据本系列中的教程,我坚持以下几点: 在本教程中,当用户通过点击Python session.pop()不清除Cookie,python,session,flask,session-storage,Python,Session,Flask,Session Storage,我对Flask框架还不熟悉,正在尝试更好地学习它。我在沿途跟随教程 根据本系列中的教程,我坚持以下几点: 在本教程中,当用户通过点击/logout路径注销时,首先发生的事情是: session.pop('logged_in', None) 现在,根据上面提到的视频,当用户点击/logout路径时,cookie也会从浏览器中删除 现在这里有两个问题: 在我的例子中,使用与教程完全相同的设置,尽管会话可能会从服务器端失效,但在点击/logout路由后,cookie不会从浏览器中以任何方式被删除/更
/logout
路径注销时,首先发生的事情是:
session.pop('logged_in', None)
现在,根据上面提到的视频,当用户点击/logout
路径时,cookie也会从浏览器中删除
现在这里有两个问题:
/logout
路由后,cookie不会从浏览器中以任何方式被删除/更改。我做错什么了吗李>
session.pop(…)
=>它将如何/为什么从前端(浏览器)删除某些内容。它只能控制服务器上的东西,不是吗所以这里使用cookie只是为了识别客户端浏览器。就是这样 您可以将cookie的过期时间设置为0,这将使其无效
@app.route('/logout')
def logout():
session.pop('token', None)
message = 'You were logged out'
resp = app.make_response(render_template('login.html', message=message))
resp.set_cookie('token', expires=0)
return resp
这是有道理的,而且我理解如果我为cookie设置了过期时间,它将在过期后无效。然而,让我困惑的是,在视频中,cookie是如何被session.pop()删除的?有些东西似乎不合适!如果您深入了解flask,那么源代码会话字典将用于组成最终的HTTP响应对象。从会话字典中删除已登录的\u最终会设置要删除的cookie我知道cookie和会话是不同的。但是,在我们上面的例子中,除了识别浏览器之外,cookie似乎也是一个会话cookie。但让我困惑的是,视频中的cookie是如何被session.pop()删除的?你认为我或这段视频的作者(极不可能)遗漏了什么吗?我回应了同样的观察。尽管后端flask应用程序已弹出会话,但会话仍保留在浏览器中。因此我认为flask后端无法直接在浏览器中删除会话。我最好的猜测是,会话中可能需要指定一个超时?
@app.route('/logout')
def logout():
session.pop('token', None)
message = 'You were logged out'
resp = app.make_response(render_template('login.html', message=message))
resp.set_cookie('token', expires=0)
return resp