Skip to content

Commit 5609c4f

Browse files
created api response handler for invalid sessions (redirect to login)
1 parent 6c8a9b0 commit 5609c4f

1 file changed

Lines changed: 20 additions & 2 deletions

File tree

client/src/lib/api.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import axios from "axios";
22

3-
import { getAccessToken } from "./auth";
3+
import { clearTokens,getAccessToken } from "./auth";
44

55
// use env URL to call API
66
const api = axios.create({ baseURL: process.env.NEXT_PUBLIC_BACKEND_URL });
77

8-
// for login, register interceptor to attach bearer token
8+
// request interceptor attaches bearer token (logins & non public pages)
99
api.interceptors.request.use((config) => {
1010
const token = getAccessToken();
1111
if (token) {
@@ -14,4 +14,22 @@ api.interceptors.request.use((config) => {
1414
return config;
1515
});
1616

17+
// response interceptor redirects to get new bearer token (expired tokens)
18+
api.interceptors.response.use(
19+
(response) => {
20+
return response;
21+
},
22+
(error) => {
23+
if (error.response?.status === 401) {
24+
clearTokens();
25+
26+
// Redirect to login page
27+
if (typeof window !== "undefined") {
28+
window.location.href = "/login";
29+
}
30+
}
31+
return Promise.reject(error);
32+
},
33+
);
34+
1735
export default api;

0 commit comments

Comments
 (0)