gpt4 book ai didi

python - 如何在 session.clear() 上从数据库中删除 Flask HTTP session

转载 作者:行者123 更新时间:2023-11-28 19:11:11 36 4
gpt4 key购买 nike

我基于此 snippit 在 Flask 中使用 SQLAlchemy 实现了服务器端 session :

class SqlAlchemySession(CallbackDict, SessionMixing):
...

class SqlAlchemySessionInterface(SessionInterface):
def __init__(self, db):
self.db = db

def open_session(self, app, request):
...

def save_session(self, app, session, response):
...

一切都按预期进行。当用户登录时,数据库中存储一个session,session id放在cookie中返回给用户。当用户注销时,调用 session.clear(),并从用户中删除 cookie。

但是, session 不会从数据库中删除。我希望我可以在我的 SqlAlchemySessionInterface 类中实现这个逻辑,而不是定义一个函数并调用它而不是 session.clear()

同样,在 sessions.py 中代码,没有任何对 clear 的引用,并且删除 cookie 的唯一时间是 if the session was modified .

API documentation for sessions也没有说明 clear 方法是如何工作的。

除了将我对 session.clear() 的所有调用替换为:

def clear_session():
sid = session.get('sid')
if sid:
db.session.query(DBSession).filter_by(sid=sid).delete()
db.session.commit()
session.clear()

最佳答案

如果你想去除重复,你可以定义一个函数叫做logout_user

在该函数中,您可以从数据库中删除 session 记录以及 session.clear()

\logout 或任何合适的地方调用此函数。

关于python - 如何在 session.clear() 上从数据库中删除 Flask HTTP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928716/

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