imeeting/frontend/src/hooks/useAuth.ts

22 lines
654 B
TypeScript
Raw Normal View History

import { useEffect, useState } from "react";
export function useAuth() {
const [accessToken, setAccessToken] = useState<string | null>(() => localStorage.getItem("accessToken"));
useEffect(() => {
const handler = () => setAccessToken(localStorage.getItem("accessToken"));
window.addEventListener("storage", handler);
return () => window.removeEventListener("storage", handler);
}, []);
const isAuthed = !!accessToken;
const logout = () => {
localStorage.removeItem("accessToken");
localStorage.removeItem("refreshToken");
sessionStorage.removeItem("userProfile");
};
return { accessToken, isAuthed, logout };
}