flask_sessions.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:Albireo 作者: lordfriend 项目源码 文件源码
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)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号