fix: 401 error code redirect to login page

pull/3813/head
Arik Chakma 2 years ago
parent 9ca74a5750
commit 11d7618230
  1. 8
      src/components/Setting/ChangePasswordForm.tsx
  2. 21
      src/components/Setting/UpdateProfileForm.tsx

@ -93,6 +93,14 @@ export default function ChangePasswordForm() {
}); });
const json = await res.json(); const json = await res.json();
if (json.status === 401) {
// If the user is not authenticated, redirect to the login page
// Clear the cookie
Cookies.remove(TOKEN_COOKIE_NAME);
window.location.href = '/login';
}
if (res.ok) { if (res.ok) {
setAuthProvider(json.authProvider); setAuthProvider(json.authProvider);
} else { } else {

@ -1,4 +1,4 @@
import { useEffect, useState } from 'preact/hooks'; import { useCallback, useEffect, useState } from 'preact/hooks';
import { TOKEN_COOKIE_NAME } from '../../lib/constants'; import { TOKEN_COOKIE_NAME } from '../../lib/constants';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
@ -55,6 +55,9 @@ export default function UpdateProfileForm() {
setLinkedin(linkedin || ''); setLinkedin(linkedin || '');
setWebsite(website || ''); setWebsite(website || '');
} }
// Check if the user has changed their email
fetchProfile();
setMessage({ setMessage({
type: 'success', type: 'success',
message: 'Profile updated successfully', message: 'Profile updated successfully',
@ -69,9 +72,7 @@ export default function UpdateProfileForm() {
}); });
}; };
// Make a request to the backend to fill in the form with the current values const fetchProfile = useCallback(async () => {
useEffect(() => {
async function fetchProfile() {
// Set the loading state // Set the loading state
setIsLoading(true); setIsLoading(true);
@ -91,6 +92,14 @@ export default function UpdateProfileForm() {
}); });
const json = await res.json(); const json = await res.json();
if (json.status === 401) {
// If the user is not authenticated, redirect to the login page
// Clear the cookie
Cookies.remove(TOKEN_COOKIE_NAME);
window.location.href = '/login';
}
if (res.ok) { if (res.ok) {
setName(json.name); setName(json.name);
setEmail(json.email); setEmail(json.email);
@ -111,8 +120,10 @@ export default function UpdateProfileForm() {
}); });
} }
setIsLoading(false); setIsLoading(false);
} }, []);
// Make a request to the backend to fill in the form with the current values
useEffect(() => {
fetchProfile(); fetchProfile();
}, []); }, []);

Loading…
Cancel
Save