fix: stop 401 auth retry loop and remove unsafe PNA localhost fallback

This commit is contained in:
dyzulk
2026-01-05 23:26:45 +07:00
parent 11585a5f1b
commit cc921a91e1
2 changed files with 18 additions and 3 deletions

View File

@@ -16,8 +16,8 @@ export default function Footer() {
useEffect(() => { useEffect(() => {
const fetchLegalPages = async () => { const fetchLegalPages = async () => {
try { try {
// Use public API endpoint // Use public API endpoint code with backup
const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000'; const apiUrl = process.env.NEXT_PUBLIC_API_URL || process.env.NEXT_PUBLIC_API_URL_BACKUP || 'https://api.trustlab.dyzulk.com';
const res = await fetch(`${apiUrl}/api/public/legal-pages`, { const res = await fetch(`${apiUrl}/api/public/legal-pages`, {
headers: { 'Accept': 'application/json' } headers: { 'Accept': 'application/json' }
}); });

View File

@@ -13,7 +13,22 @@ export const useAuth = ({ middleware, redirectIfAuthenticated }: { middleware?:
.catch(error => { .catch(error => {
if (error.response.status !== 409) throw error; if (error.response.status !== 409) throw error;
router.push('/verify-email'); router.push('/verify-email');
}) }),
{
onErrorRetry: (error, key, config, revalidate, { retryCount }) => {
// Never retry on 401 Unauthorized
if (error.response?.status === 401) return;
// Never retry on 409 Conflict (handled by catch block above)
if (error.response?.status === 409) return;
// Only retry up to 3 times for other errors
if (retryCount >= 3) return;
// Retry after 5 seconds
setTimeout(() => revalidate({ retryCount }), 5000);
}
}
); );
const csrf = () => axios.get('/sanctum/csrf-cookie'); const csrf = () => axios.get('/sanctum/csrf-cookie');