From 01bb34f6cb1050d4048c21d3a5d896f3590c5d21 Mon Sep 17 00:00:00 2001 From: "Philip H." <47042125+pheiduck@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:59:25 +0200 Subject: [PATCH] fixup: login issues by restart of wg-easy --- src/widgets/wgeasy/proxy.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/widgets/wgeasy/proxy.js b/src/widgets/wgeasy/proxy.js index df7e4465..041cdf4b 100644 --- a/src/widgets/wgeasy/proxy.js +++ b/src/widgets/wgeasy/proxy.js @@ -22,7 +22,7 @@ async function login(widget, service) { if (statusCode > 400) { 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; } @@ -30,18 +30,25 @@ async function login(widget, service) { try { logger.debug(`Logging into wg-easy, responseHeaders: ${JSON.stringify(responseHeaders)}`); let connectSidCookie = responseHeaders["set-cookie"]; + if (!connectSidCookie) { const sid = cache.get(`${sessionSIDCacheKey}.${service}`); if (sid) { return sid; } } - connectSidCookie = connectSidCookie - .find((cookie) => cookie.startsWith("connect.sid=")) - .split(";")[0] - .replace("connect.sid=", ""); - cache.put(`${sessionSIDCacheKey}.${service}`, connectSidCookie); - return connectSidCookie; + + if (Array.isArray(connectSidCookie)) { + connectSidCookie = connectSidCookie + .find((cookie) => cookie.startsWith("connect.sid=")) + .split(";")[0] + .replace("connect.sid=", ""); + cache.put(`${sessionSIDCacheKey}.${service}`, connectSidCookie); + return connectSidCookie; + } else { + logger.error("set-cookie is not an array:", connectSidCookie); + return null; + } } catch (e) { logger.error(`Error logging into wg-easy: ${JSON.stringify(e)}`); cache.del(`${sessionSIDCacheKey}.${service}`);