From: Dessalines Date: Mon, 15 Mar 2021 20:54:17 +0000 (-0400) Subject: Fixing an issue with incorrect jwts X-Git-Url: http://these/git/%22https:/nerdica.net/static/%22%7B%7D/%7Bthis.props.imageSrc%7D?a=commitdiff_plain;h=45445fe0a3cb2fa4f5347db0810ae1427a0e2f0e;p=lemmy-ui.git Fixing an issue with incorrect jwts --- diff --git a/src/server/index.tsx b/src/server/index.tsx index 748494c..0dcd164 100644 --- a/src/server/index.tsx +++ b/src/server/index.tsx @@ -12,7 +12,7 @@ import { } from "../shared/interfaces"; import { routes } from "../shared/routes"; import IsomorphicCookie from "isomorphic-cookie"; -import { GetSite, LemmyHttp } from "lemmy-js-client"; +import { GetSite, GetSiteResponse, LemmyHttp } from "lemmy-js-client"; import process from "process"; import { Helmet } from "inferno-helmet"; import { initializeSite } from "../shared/initialize"; @@ -48,7 +48,18 @@ server.get("/*", async (req, res) => { }; // Get site data first - let site = await initialFetchReq.client.getSite(getSiteForm); + // This bypasses errors, so that the client can hit the error on its own, + // in order to remove the jwt on the browser. Necessary for wrong jwts + let try_site: any = await initialFetchReq.client.getSite(getSiteForm); + if (try_site.error == "not_logged_in") { + console.error( + "Incorrect JWT token, skipping auth so frontend can remove jwt cookie" + ); + delete getSiteForm.auth; + delete initialFetchReq.auth; + try_site = await initialFetchReq.client.getSite(getSiteForm); + } + let site: GetSiteResponse = try_site; initializeSite(site); if (activeRoute.fetchInitialData) {