def save_session(self, app, session, response):
domain = self.get_cookie_domain(app)
path = self.get_cookie_path(app)
sid = session.sid
db_session = SessionManager.Session()
saved_session = db_session.query(ServerSession).filter(ServerSession.session_id == sid).first()
if not session:
if session.modified:
if saved_session:
db_session.delete(saved_session)
db_session.commit()
response.delete_cookie(app.session_cookie.name, domain=domain, path=path)
return
httponly = self.get_cookie_httponly(app)
secure = self.get_cookie_secure(app)
expires = self.get_expiration_time(app, session)
# expires = datetime.utcnow() + timedelta(minutes=1)
# if expires is None:
# expires = datetime.utcnow() + timedelta(days=1)
val = self.serializer.dumps(dict(session))
if saved_session:
saved_session.data = val
saved_session.expiry = expires
db_session.commit()
else:
new_session = ServerSession(session_id=sid, data=val, expiry=expires)
db_session.add(new_session)
db_session.commit()
session_id = self._get_signer(app).sign(want_bytes(session.sid))
response.set_cookie(app.session_cookie_name,
session_id,
expires=expires,
httponly=httponly,
domain=domain,
path=path,
secure=secure)
评论列表
文章目录