fix login redirect loop: skip settings check when unauthenticated, only redirect 401 when token present
All checks were successful
Build and Push / build (push) Successful in 1m12s
All checks were successful
Build and Push / build (push) Successful in 1m12s
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { useState, useEffect, useCallback } from 'react';
|
||||
import { Routes, Route, Navigate } from 'react-router-dom';
|
||||
import { AuthProvider, useAuth } from './contexts/AuthContext';
|
||||
import Login from './pages/Login';
|
||||
@@ -20,18 +20,22 @@ function AppInner() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [isConfigured, setIsConfigured] = useState(false);
|
||||
|
||||
const checkSettings = () => {
|
||||
const checkSettings = useCallback(() => {
|
||||
api.getSettings()
|
||||
.then(data => {
|
||||
setIsConfigured(!!(data && data.onboarding_completed));
|
||||
})
|
||||
.catch(() => setIsConfigured(false))
|
||||
.finally(() => setLoading(false));
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!user) {
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
checkSettings();
|
||||
}, []);
|
||||
}, [user, checkSettings]);
|
||||
|
||||
if (authLoading || loading) {
|
||||
return <div className="min-h-screen bg-deep-900 text-white flex items-center justify-center">Loading...</div>;
|
||||
|
||||
@@ -11,7 +11,7 @@ window.fetch = function (input: RequestInfo | URL, init?: RequestInit): Promise<
|
||||
}
|
||||
}
|
||||
return origFetch.call(window, input, init).then((res) => {
|
||||
if (res.status === 401 && url.startsWith("/api/") && !url.startsWith("/api/auth/login") && !url.startsWith("/api/auth/me")) {
|
||||
if (res.status === 401 && url.startsWith("/api/") && !url.startsWith("/api/auth/login") && !url.startsWith("/api/auth/me") && localStorage.getItem("token")) {
|
||||
localStorage.removeItem("token");
|
||||
window.location.href = "/login";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user