init auth

This commit is contained in:
xds
2026-02-08 17:36:22 +03:00
parent 7732856f90
commit 6856449075
11 changed files with 473 additions and 68 deletions

View File

@@ -10,6 +10,19 @@ const api = axios.create({
})
// Request interceptor handling can be added here if needed
api.interceptors.request.use(
config => {
const user = JSON.parse(localStorage.getItem('user'));
if (user && user.token) {
config.headers['Authorization'] = `${user.tokenType} ${user.token}`;
}
return config;
},
error => {
return Promise.reject(error);
}
);
api.interceptors.response.use(
response => response,
error => {

View File

@@ -0,0 +1,46 @@
import api from "./api";
export const authService = {
async login(username, password) {
const formData = new URLSearchParams();
formData.append("username", username);
formData.append("password", password);
const response = await api.post("/auth/token", formData, {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
});
return response.data;
},
async register(username, password, fullName) {
const payload = {
username,
password,
full_name: fullName,
};
const response = await api.post("/auth/register", payload);
return response.data;
},
async getMe() {
const response = await api.get("/auth/me");
return response.data;
},
async getApprovals() {
const response = await api.get("/admin/approvals");
return response.data;
},
async approveUser(username) {
const response = await api.post(`/admin/approve/${username}`);
return response.data;
},
async denyUser(username) {
const response = await api.post(`/admin/deny/${username}`);
return response.data;
},
};

View File

@@ -48,6 +48,11 @@ export const dataService = {
return response.data
},
deleteGeneration: async (id) => {
const response = await api.delete(`/generations/${id}`)
return response.data
},
generatePromptFromImage: async (files, prompt) => {
const formData = new FormData()