feat: authorization

This commit is contained in:
moolcoov
2025-03-01 20:24:23 +03:00
parent f74b8df791
commit 535b0c39dc
22 changed files with 560 additions and 108 deletions
+38
View File
@@ -0,0 +1,38 @@
import { ofetch } from "ofetch";
import { getToken, removeToken } from "../token";
const BASE_URL = import.meta.env.VITE_API_ENDPOINT;
export class ApiError extends Error {
response: Response;
status: number;
constructor(response: Response) {
super(response.statusText);
this.response = response;
this.status = response.status;
}
}
export const authFetch = ofetch.create({
baseURL: BASE_URL,
async onResponseError({ response }) {
throw new ApiError(response);
},
});
export const apiFetch = ofetch.create({
baseURL: BASE_URL,
headers: {
Authorization: "Bearer " + getToken(),
},
async onResponseError({ response }) {
if (response.status === 401) {
removeToken();
window.location.href = "/login";
return;
}
throw new ApiError(response);
},
});