feat: Update auth error handler to differentiate between app and external service 401 errors, preventing unnecessary session logouts
This commit is contained in:
@@ -25,18 +25,28 @@ export default defineNuxtPlugin(() => {
|
||||
statusText: response.statusText
|
||||
})
|
||||
|
||||
// Handle authentication errors (401, 403)
|
||||
if (response.status === 401 || response.status === 403) {
|
||||
// Only handle authentication errors from our own API endpoints
|
||||
const isAuthEndpoint = response.url && (
|
||||
response.url.includes('/api/auth/') ||
|
||||
response.url.includes('/api/') && !response.url.includes('cms.portnimara.dev') && !response.url.includes('database.portnimara.com')
|
||||
)
|
||||
|
||||
// Handle authentication errors (401, 403) only from our API
|
||||
if ((response.status === 401 || response.status === 403) && isAuthEndpoint) {
|
||||
console.log('[AUTH_ERROR_HANDLER] Authentication error from app endpoint')
|
||||
handleAuthError({
|
||||
statusCode: response.status,
|
||||
statusMessage: response.statusText,
|
||||
data: response._data
|
||||
})
|
||||
} else if (response.status === 401 && !isAuthEndpoint) {
|
||||
console.log('[AUTH_ERROR_HANDLER] Ignoring 401 from external service:', response.url)
|
||||
// Don't clear auth for external service 401s
|
||||
}
|
||||
|
||||
// Handle 404 errors that might be auth-related
|
||||
if (response.status === 404 && isProtectedRoute()) {
|
||||
console.warn('[AUTH_ERROR_HANDLER] 404 on protected route, may be auth-related')
|
||||
if (response.status === 404 && isProtectedRoute() && isAuthEndpoint) {
|
||||
console.warn('[AUTH_ERROR_HANDLER] 404 on protected route from app endpoint, may be auth-related')
|
||||
// Check if session is still valid
|
||||
checkAndHandleSession()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user