Refactor token validation and refresh logic in ProtectedRoute component
This commit is contained in:
parent
8d4c9e4f39
commit
d48da2ea8f
@ -41,31 +41,32 @@ const isTokenExpired = (token) => {
|
||||
// Function to validate and refresh the token if expired
|
||||
export const validateToken = async () => {
|
||||
const token = localStorage.getItem("jwtToken");
|
||||
const refreshTokenStored = localStorage.getItem("refreshToken");
|
||||
// If refresh token is absent, cannot proceed
|
||||
if (!refreshTokenStored) {
|
||||
console.warn("No refresh token available. Redirecting to login.");
|
||||
return false;
|
||||
}
|
||||
|
||||
// If access token expired, try to refresh
|
||||
if (isTokenExpired(token)) {
|
||||
const refreshed = await refreshToken();
|
||||
return refreshed;
|
||||
return await attemptTokenRefresh(refreshTokenStored);
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// Function to refresh the access token
|
||||
const refreshToken = async () => {
|
||||
// Attempt to refresh the access token
|
||||
const attemptTokenRefresh = async (storedRefreshToken) => {
|
||||
try {
|
||||
AuthRepository.refreshToken({
|
||||
const response = await AuthRepository.refreshToken({
|
||||
token: localStorage.getItem("jwtToken"),
|
||||
refreshToken: refreshToken,
|
||||
})
|
||||
.then((response) => {
|
||||
localStorage.setItem("jwtToken", response.data.token);
|
||||
localStorage.setItem("refreshToken", response.data.refreshToken);
|
||||
return true;
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Token refresh failed:", error);
|
||||
});
|
||||
refreshToken: storedRefreshToken,
|
||||
});
|
||||
|
||||
// api
|
||||
localStorage.setItem("jwtToken", response.data.token);
|
||||
localStorage.setItem("refreshToken", response.data.refreshToken);
|
||||
return true;
|
||||
// api
|
||||
// .post("/api/auth/refresh-token", {
|
||||
// token: localStorage.getItem("jwtToken"),
|
||||
// refreshToken: refreshToken,
|
||||
@ -92,8 +93,8 @@ const refreshToken = async () => {
|
||||
// }
|
||||
} catch (error) {
|
||||
console.error("Token refresh failed:", error);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
export default ProtectedRoute;
|
||||
|
Loading…
x
Reference in New Issue
Block a user