lifetracker/apps/web/components/utils/ValidAccountCheck.tsx

27 lines
693 B
TypeScript

"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 <></>;
}