diff --git a/src/hooks/useAuthHeaders.ts b/src/hooks/useAuthHeaders.ts index 91982e7..f54ad95 100644 --- a/src/hooks/useAuthHeaders.ts +++ b/src/hooks/useAuthHeaders.ts @@ -1,13 +1,19 @@ import { useLogto } from "@logto/react" import { useEffect, useState } from "react"; import { LOGTO_RESOURCE } from "../utils/constants"; +import useAutoLogin from "./useAutoLogin"; export const useAuthHeaders = (): HeadersInit => { const { isAuthenticated, getAccessToken } = useLogto(); + const { login } = useAutoLogin(); const [headers, setHeaders] = useState({}); useEffect(() => { if (isAuthenticated) { getAccessToken(LOGTO_RESOURCE).then(token => { + if (!token) { + login(); + return; + } setHeaders({ Authorization: `Bearer ${token}` }) }); } diff --git a/src/hooks/useAutoLogin.ts b/src/hooks/useAutoLogin.ts index eb1fc39..5c4f780 100644 --- a/src/hooks/useAutoLogin.ts +++ b/src/hooks/useAutoLogin.ts @@ -3,7 +3,7 @@ import { useNavigate } from "react-router"; const useAutoLogin = () => { const navigate = useNavigate(); - const login = useCallback((redirect?: string) => { + const login = useCallback((redirect = window.location.pathname) => { if (redirect) { sessionStorage.setItem('redirect', redirect); }