Improve token management in axios.js and store/index.js: Ensure headers are initialized correctly and enhance error handling for 401 responses by checking for stored tokens. Update isLoggedIn state logic to rely solely on token usability, improving authentication reliability.
All checks were successful
Deploy miriamgemeinde / deploy (push) Successful in 6s
All checks were successful
Deploy miriamgemeinde / deploy (push) Successful in 6s
This commit is contained in:
11
src/axios.js
11
src/axios.js
@@ -38,6 +38,7 @@ function isTokenUsable(token) {
|
||||
axios.interceptors.request.use(
|
||||
config => {
|
||||
const token = localStorage.getItem('token');
|
||||
config.headers = config.headers || {};
|
||||
if (token) {
|
||||
if (isTokenUsable(token)) {
|
||||
config.headers.Authorization = `Bearer ${token}`;
|
||||
@@ -61,8 +62,16 @@ axios.interceptors.response.use(
|
||||
const requestUrl = error.config?.url || '';
|
||||
const isLoginRequest = requestUrl.includes('/auth/login');
|
||||
const isLogoutRequest = requestUrl.includes('/auth/logout');
|
||||
const hasStoredToken = isTokenUsable(localStorage.getItem('token'));
|
||||
const hadAuthHeader = !!error.config?.headers?.Authorization;
|
||||
|
||||
if (error.response && error.response.status === 401 && !isLoginRequest && !isLogoutRequest) {
|
||||
if (
|
||||
error.response &&
|
||||
error.response.status === 401 &&
|
||||
!isLoginRequest &&
|
||||
!isLogoutRequest &&
|
||||
(hasStoredToken || hadAuthHeader)
|
||||
) {
|
||||
clearStoredLogin();
|
||||
if (window.location.pathname !== '/auth/login') {
|
||||
window.location.replace('/auth/login');
|
||||
|
||||
Reference in New Issue
Block a user