fix login redirects

This commit is contained in:
Kirill Ivlev 2024-12-18 17:22:14 +04:00
parent eb05627a98
commit 936a38a7a8
3 changed files with 15 additions and 8 deletions

View file

@ -21,7 +21,11 @@ api.interceptors.response.use(
(error) => { (error) => {
if (error.response && error.response.status === 401) { if (error.response && error.response.status === 401) {
localStorage.removeItem('token'); localStorage.removeItem('token');
window.location.href = '/login'; if(error.response.request.responseURL.indexOf('user/login') === -1) {
window.location.href = '/login';
} else {
return Promise.reject(error);
}
} }
return Promise.reject(error); return Promise.reject(error);
} }

BIN
src/assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View file

@ -9,7 +9,7 @@ import {useNavigate} from "react-router-dom";
export function LoginPage() { export function LoginPage() {
const [login,setLogin] = useState(''); const [login,setLogin] = useState('');
const [password, setPassword] = useState(''); const [password, setPassword] = useState('');
const [showWrongUserNameAndPasswordError, setShowWrongUserNameAndPasswordError] = useState(false); const [errorMessage, setErrorMessage] = useState('');
const [registerResultMessage, setRegisterResultMessage] = useState(''); const [registerResultMessage, setRegisterResultMessage] = useState('');
const auth = useAuth(); const auth = useAuth();
const navigate = useNavigate(); const navigate = useNavigate();
@ -21,11 +21,14 @@ export function LoginPage() {
password: password, password: password,
}).then((response) => { }).then((response) => {
auth.login(response.data.token); auth.login(response.data.token);
setShowWrongUserNameAndPasswordError(false); setErrorMessage('');
navigate('/'); navigate('/');
}).catch((err) => { }).catch((err) => {
console.log(err);
if(err.status === 401) { if(err.status === 401) {
setShowWrongUserNameAndPasswordError(true); setErrorMessage('Wrong username or password');
} else {
setErrorMessage('Something went wrong');
} }
}) })
} }
@ -37,10 +40,10 @@ export function LoginPage() {
}).then((response) => { }).then((response) => {
if(response.status === 201) { if(response.status === 201) {
setRegisterResultMessage('User registered successfully. You can now log in.'); setRegisterResultMessage('User registered successfully. You can now log in.');
setShowWrongUserNameAndPasswordError(false); setErrorMessage('');
} }
}).catch(() => { }).catch(() => {
setRegisterResultMessage('Something went wrong'); setErrorMessage('Something went wrong');
}); });
} }
@ -55,9 +58,9 @@ export function LoginPage() {
</div> </div>
<div className={"flex flex-col items-center"}> <div className={"flex flex-col items-center"}>
<div className={"lg:w-80 sm:w-3/4"}> <div className={"lg:w-80 sm:w-3/4"}>
{ showWrongUserNameAndPasswordError && ( { errorMessage && (
<div className={"p-4 rounded bg-red-200 text-black"}> <div className={"p-4 rounded bg-red-200 text-black"}>
Wrong username or password { errorMessage }
</div> </div>
)} )}
{ registerResultMessage && ( { registerResultMessage && (