gpt4 book ai didi

firefox - 注销后如何在Firefox中清除 "remember_token"?(使用flask.login)

转载 作者:行者123 更新时间:2023-12-03 17:01:03 24 4
gpt4 key购买 nike

我正在尝试让用户使用 flask 登录登录。

登录码:

def signin(self, email, password):
user = None
userLoggedIn = False

private_key = self.get_private_key(email, password)
if private_key:
public_key = self.get_public_key(email, private_key)
if public_key:
user = userManager.findUser(email)
if user:
userManager.changeUserPassword(email, password)
userManager.changeCloudAccessKeys(email, public_key, private_key)
else:
user = userManager.addUser(email, password, public_key, private_key, True)
userLoggedIn = True

if userLoggedIn:
login_user(user, remember=False)
userId = user.get_id()
identity_changed.send(current_app._get_current_object(),identity=Identity(userId))
return True
return False

注销代码:
def signout(self):
from flask import session
logout_user()
session.clear()
identity_changed.send(current_app._get_current_object(),identity=AnonymousIdentity())
self.remove_logged_user()

我用@login_required 装饰 View ,以便用户只有在登录时才能执行操作:
 @app.route("/do_things",methods=["GET"])
@login_required
def do_things():
pass

在 Chrome 中,一切正常。如果用户没有登录,则不会访问由 @login_required 修饰的 View 。

但是在 Firefox 中,注销后,我仍然可以“做事”。我检查了 Firefox cookie,发现 cookie session 中有一个“remember_token”:
Response cookie:
session:1q2w3e4r...
httponly:true
path"/"

Request cookie:
remember_token:""username@gmail.com|8c5873f3748b8f5d18e9bd10cd5e9ee678a9a0a9e0a406fccce982825a7a57f167025341d102ee59cbecbfc20f5dae597ca66e92e5e4926f9aa64c6c244788b1""
session:1q2w3e4r...

我发现Firefox将我的用户电子邮件保存在remember_token中并将其包含在http requset中。因此flask中的 View 仍然认为我已经登录。

在 flask 中注销后,如何清除 Firefox 中的用户信息?

最佳答案

您可以通过将响应的 cookie 设置为过去的过期日期来删除 remember_token cookie,如下面的代码

        logout_user()
session.clear()
yesterday = datetime.datetime.now() + datetime.timedelta(days=-1)
out = jsonify(success=True, message="success")
out.set_cookie('remember_token', '', expires=yesterday)

关于firefox - 注销后如何在Firefox中清除 "remember_token"?(使用flask.login),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com