CRITICAL FIX: Remove 403 from auth redirect logic to restore login
BREAKING ISSUE FIXED: - 403 errors were triggering redirects, preventing login page from loading - Public endpoints returning 403 were causing redirect loops Changes: - Removed 403 status from automatic redirect logic - Only 401 (Unauthorized) now triggers login redirect - 403 (Forbidden) errors are passed through without redirect This fixes the critical issue where users couldn't access the login page because public API calls were returning 403 and triggering redirects. 403 errors should be handled differently than 401: - 401 = Missing/invalid auth (redirect to login) - 403 = Forbidden (could be rate limit, IP block, etc - don't redirect) 🚨 Emergency fix for production Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -82,13 +82,13 @@ api.interceptors.response.use(
|
||||
}
|
||||
}
|
||||
|
||||
if (error.response?.status === 401 || error.response?.status === 403) {
|
||||
if (error.response?.status === 401) {
|
||||
// Check if it's an admin route
|
||||
const isAdminRoute = error.config?.url?.includes('/admin');
|
||||
const currentPath = window.location.pathname;
|
||||
|
||||
if (isAdminRoute) {
|
||||
// Clear admin token on unauthorized or forbidden
|
||||
// Clear admin token on unauthorized
|
||||
Cookies.remove(ADMIN_TOKEN_KEY);
|
||||
// Only redirect if we're not already on the admin login page
|
||||
if (!currentPath.includes('/admin/login')) {
|
||||
@@ -107,7 +107,7 @@ api.interceptors.response.use(
|
||||
localStorage.removeItem(`gallery_event_${gallerySlug}`);
|
||||
}
|
||||
// Don't redirect - let the component handle the auth state
|
||||
} else {
|
||||
} else if (galleryMatch) {
|
||||
// We're not on a gallery page but got a 401 from a gallery API
|
||||
// This shouldn't happen in normal flow, but if it does, redirect to homepage
|
||||
window.location.href = '/';
|
||||
|
||||
Reference in New Issue
Block a user