From: Dessalines <tyhou13@gmx.com>
Date: Mon, 15 Mar 2021 20:54:17 +0000 (-0400)
Subject: Fixing an issue with incorrect jwts
X-Git-Url: http://these/git/%7BpictrsAvatarThumbnail%28user.avatar%29%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) {