22 lines
654 B
TypeScript
22 lines
654 B
TypeScript
|
|
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 };
|
||
|
|
}
|
||
|
|
|