Sync BIM session logout with Hub

This commit is contained in:
CODEX
2026-06-23 14:48:37 +03:00
parent 48400c7d8c
commit 66fc4960bf
4 changed files with 132 additions and 11 deletions
+15 -4
View File
@@ -1685,15 +1685,22 @@ const handleSharePromoted = (res, url) => {
</html>`);
};
const handleLogout = (req, res) => {
const handleLogout = (req, res, {redirect = true} = {}) => {
const sessionId = parseCookies(req.headers.cookie || "")[BIM_SESSION_COOKIE];
if (sessionId) {
bimSessions.delete(sessionId);
}
clearBimSessionCookie(res);
res.statusCode = 302;
res.setHeader("Location", "/");
res.end();
res.setHeader("Cache-Control", "no-store");
if (redirect) {
res.statusCode = 302;
res.setHeader("Location", "/");
res.end();
return;
}
res.statusCode = 200;
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.end("<!doctype html><html><head><meta charset='utf-8'></head><body>NODE.DC BIM session closed.</body></html>");
};
const handleCreateShare = async (req, res) => {
@@ -3304,6 +3311,10 @@ const requestHandler = async (req, res) => {
return handleLogout(req, res);
}
if (req.method === "GET" && url.pathname === "/logout") {
return handleLogout(req, res, {redirect: false});
}
if (req.method === "GET" && /^\/api\/shares\/[^/]+\/?$/.test(url.pathname)) {
return handleGetShare(req, res, shareTokenFromPath(url.pathname));
}