fixup: login issues by restart of wg-easy

This commit is contained in:
Philip H. 2024-09-09 15:59:25 +02:00 committed by GitHub
parent 865ca73ebc
commit 01bb34f6cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,7 +22,7 @@ async function login(widget, service) {
if (statusCode > 400) { if (statusCode > 400) {
logger.error( logger.error(
`Failed to login to wg-easy, statusCode: ${statusCode}, responseHeaders: ${JSON.stringify(responseHeaders)}`, `Failed to login to wg-easy, statusCode: ${statusCode}, responseHeaders: ${JSON.stringify(responseHeaders)}`
); );
return null; return null;
} }
@ -30,18 +30,25 @@ async function login(widget, service) {
try { try {
logger.debug(`Logging into wg-easy, responseHeaders: ${JSON.stringify(responseHeaders)}`); logger.debug(`Logging into wg-easy, responseHeaders: ${JSON.stringify(responseHeaders)}`);
let connectSidCookie = responseHeaders["set-cookie"]; let connectSidCookie = responseHeaders["set-cookie"];
if (!connectSidCookie) { if (!connectSidCookie) {
const sid = cache.get(`${sessionSIDCacheKey}.${service}`); const sid = cache.get(`${sessionSIDCacheKey}.${service}`);
if (sid) { if (sid) {
return sid; return sid;
} }
} }
connectSidCookie = connectSidCookie
.find((cookie) => cookie.startsWith("connect.sid=")) if (Array.isArray(connectSidCookie)) {
.split(";")[0] connectSidCookie = connectSidCookie
.replace("connect.sid=", ""); .find((cookie) => cookie.startsWith("connect.sid="))
cache.put(`${sessionSIDCacheKey}.${service}`, connectSidCookie); .split(";")[0]
return connectSidCookie; .replace("connect.sid=", "");
cache.put(`${sessionSIDCacheKey}.${service}`, connectSidCookie);
return connectSidCookie;
} else {
logger.error("set-cookie is not an array:", connectSidCookie);
return null;
}
} catch (e) { } catch (e) {
logger.error(`Error logging into wg-easy: ${JSON.stringify(e)}`); logger.error(`Error logging into wg-easy: ${JSON.stringify(e)}`);
cache.del(`${sessionSIDCacheKey}.${service}`); cache.del(`${sessionSIDCacheKey}.${service}`);