mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
fix(auth/refresh): send 403 res for invalid token to properly invalidate session (#1068)
This commit is contained in:
parent
377f2c7c19
commit
ddf56db316
2 changed files with 12 additions and 11 deletions
|
|
@ -112,7 +112,9 @@ const refreshController = async (req, res) => {
|
||||||
res.status(401).send('Refresh token expired or not found for this user');
|
res.status(401).send('Refresh token expired or not found for this user');
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
res.status(401).send('Invalid refresh token');
|
console.error('Refresh token error', refreshToken);
|
||||||
|
console.error(err);
|
||||||
|
res.status(403).send('Invalid refresh token');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,20 +21,19 @@ const processQueue = (error: AxiosError | null, token: string | null = null) =>
|
||||||
|
|
||||||
axios.interceptors.response.use(
|
axios.interceptors.response.use(
|
||||||
(response) => response,
|
(response) => response,
|
||||||
(error) => {
|
async (error) => {
|
||||||
const originalRequest = error.config;
|
const originalRequest = error.config;
|
||||||
if (error.response.status === 401 && !originalRequest._retry) {
|
if (error.response.status === 401 && !originalRequest._retry) {
|
||||||
if (isRefreshing) {
|
if (isRefreshing) {
|
||||||
return new Promise(function (resolve, reject) {
|
try {
|
||||||
failedQueue.push({ resolve, reject });
|
const token = await new Promise(function (resolve, reject) {
|
||||||
})
|
failedQueue.push({ resolve, reject });
|
||||||
.then((token) => {
|
|
||||||
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
||||||
return axios(originalRequest);
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
return Promise.reject(err);
|
|
||||||
});
|
});
|
||||||
|
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
||||||
|
return await axios(originalRequest);
|
||||||
|
} catch (err) {
|
||||||
|
return await Promise.reject(err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
originalRequest._retry = true;
|
originalRequest._retry = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue