Sync BIM session logout with Hub
This commit is contained in:
+15
-4
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user