aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/utils/ValidAccountCheck.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/components/utils/ValidAccountCheck.tsx')
-rw-r--r--apps/web/components/utils/ValidAccountCheck.tsx26
1 files changed, 26 insertions, 0 deletions
diff --git a/apps/web/components/utils/ValidAccountCheck.tsx b/apps/web/components/utils/ValidAccountCheck.tsx
new file mode 100644
index 00000000..12c11087
--- /dev/null
+++ b/apps/web/components/utils/ValidAccountCheck.tsx
@@ -0,0 +1,26 @@
+"use client";
+
+import { api } from "@/lib/trpc";
+import { signOut } from "next-auth/react";
+
+/**
+ * This component is used to address a confusion when the JWT token exists but the user no longer exists in the database.
+ * So this component synchronusly checks if the user is still valid and if not, signs out the user.
+ */
+export default function ValidAccountCheck() {
+ const { error } = api.users.whoami.useQuery(undefined, {
+ retry: (_failureCount, error) => {
+ if (error.data?.code === "UNAUTHORIZED") {
+ return false;
+ }
+ return true;
+ },
+ });
+ if (error?.data?.code === "UNAUTHORIZED") {
+ signOut({
+ callbackUrl: "/",
+ });
+ }
+
+ return <></>;
+}