kgroad-frontend2/src/app/[locale]/profile/AuthGuard.tsx

32 lines
734 B
TypeScript

"use client";
import { apiInstance } from "@/shared/config/apiConfig";
import { AxiosError } from "axios";
import { signOut, useSession } from "next-auth/react";
import { useEffect } from "react";
const AuthGuard = ({ children }: { children: React.ReactNode }) => {
const session = useSession();
const verifyToken = async () => {
try {
const data = {
token: session.data?.access_token,
};
await apiInstance.post("/token/verify/", data);
} catch (error: unknown) {
signOut({
callbackUrl: "/",
});
}
};
useEffect(() => {
if (session.status === "loading") return;
verifyToken();
}, [session.status]);
return <>{children}</>;
};
export default AuthGuard;