From 30de2eafdf8611a5b337e518b176eb5422ba4015 Mon Sep 17 00:00:00 2001 From: valitovgaziz Date: Fri, 10 Oct 2025 05:14:00 +0500 Subject: [PATCH] new file: begushiybashkir/bbvue/.env modified: begushiybashkir/bbvue/src/stores/auth.js modified: serv_nginx/api_bb/internal/handlers/auth.go fix auth api_bb for debug info --- begushiybashkir/bbvue/.env | 1 + begushiybashkir/bbvue/src/stores/auth.js | 24 +++++------ serv_nginx/api_bb/internal/handlers/auth.go | 45 +++++++++++++++++---- 3 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 begushiybashkir/bbvue/.env diff --git a/begushiybashkir/bbvue/.env b/begushiybashkir/bbvue/.env new file mode 100644 index 0000000..b20b313 --- /dev/null +++ b/begushiybashkir/bbvue/.env @@ -0,0 +1 @@ +VITE_APP_DEBUG=true \ No newline at end of file diff --git a/begushiybashkir/bbvue/src/stores/auth.js b/begushiybashkir/bbvue/src/stores/auth.js index 14c8150..7f4eeb6 100644 --- a/begushiybashkir/bbvue/src/stores/auth.js +++ b/begushiybashkir/bbvue/src/stores/auth.js @@ -46,23 +46,23 @@ export const useAuthStore = defineStore('auth', () => { const register = async (userData) => { loading.value = true error.value = '' - + try { const response = await axios.post(`${API_BASE_URL}/register`, userData) - + // После успешной регистрации автоматически логинимся const loginResponse = await axios.post(`${API_BASE_URL}/login`, { email: userData.email, password: userData.password }) - + const { token: authToken, user: userInfo } = loginResponse.data setToken(authToken) setUser(userInfo) - + return { success: true, data: response.data } } catch (err) { - error.value = err.response?.data?.message || 'Ошибка регистрации' + error.value = err.response?.data?.message || err.message || 'Ошибка регистрации' return { success: false, error: error.value } } finally { loading.value = false @@ -73,14 +73,14 @@ export const useAuthStore = defineStore('auth', () => { const login = async (credentials) => { loading.value = true error.value = '' - + try { const response = await axios.post(`${API_BASE_URL}/login`, credentials) const { token: authToken, user: userInfo } = response.data - + setToken(authToken) setUser(userInfo) - + return { success: true, data: response.data } } catch (err) { error.value = err.response?.data?.message || 'Ошибка входа' @@ -93,7 +93,7 @@ export const useAuthStore = defineStore('auth', () => { // Выход const logout = async () => { loading.value = true - + try { await axios.post(`${API_BASE_URL}/logout`, {}, { headers: { @@ -113,7 +113,7 @@ export const useAuthStore = defineStore('auth', () => { const fetchProfile = async () => { loading.value = true error.value = '' - + try { const response = await axios.get(`${API_BASE_URL}/profile`) setUser(response.data) @@ -144,11 +144,11 @@ export const useAuthStore = defineStore('auth', () => { token, loading, error, - + // Getters isAuthenticated, userFullName, - + // Actions register, login, diff --git a/serv_nginx/api_bb/internal/handlers/auth.go b/serv_nginx/api_bb/internal/handlers/auth.go index 4b52157..2823b36 100644 --- a/serv_nginx/api_bb/internal/handlers/auth.go +++ b/serv_nginx/api_bb/internal/handlers/auth.go @@ -83,25 +83,53 @@ type UserResponse struct { } func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { - - fmt.Printf("Register request: %+v\n", r) - // Устанавливаем CORS заголовки w.Header().Set("Access-Control-Allow-Origin", r.Header.Get("Origin")) w.Header().Set("Access-Control-Allow-Credentials", "true") + // Логируем тело запроса для отладки + bodyBytes, err := io.ReadAll(r.Body) + if err != nil { + utils.RespondWithError(w, http.StatusBadRequest, "Failed to read request body: "+err.Error()) + return + } + + // Восстанавливаем тело для дальнейшего использования + r.Body = io.NopCloser(bytes.NewBuffer(bodyBytes)) + + fmt.Printf("Raw request body: %s\n", string(bodyBytes)) + var req RegisterRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { - utils.RespondWithError(w, http.StatusBadRequest, "Invalid request payload: "+err.Error()) + fmt.Printf("JSON decode error: %v\n", err) + utils.RespondWithError(w, http.StatusBadRequest, "Invalid JSON payload: "+err.Error()) return } + fmt.Printf("Parsed register request: %+v\n", req) + // Валидация обязательных полей - if req.FirstName == "" || req.LastName == "" || req.Email == "" || req.Password == "" { - utils.RespondWithError(w, http.StatusBadRequest, "First name, last name, email and password are required") + if req.FirstName == "" { + utils.RespondWithError(w, http.StatusBadRequest, "First name is required") return } - + if req.LastName == "" { + utils.RespondWithError(w, http.StatusBadRequest, "Last name is required") + return + } + if req.Email == "" { + utils.RespondWithError(w, http.StatusBadRequest, "Email is required") + return + } + if req.Password == "" { + utils.RespondWithError(w, http.StatusBadRequest, "Password is required") + return + } + if len(req.Password) < 6 { + utils.RespondWithError(w, http.StatusBadRequest, "Password must be at least 6 characters") + return + } + user := &models.User{ Email: req.Email, Password: req.Password, @@ -115,8 +143,9 @@ func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) { CreatedAt: time.Now(), UpdatedAt: time.Now(), } - + if err := h.authService.Register(user); err != nil { + fmt.Printf("Auth service error: %v\n", err) utils.RespondWithError(w, http.StatusBadRequest, err.Error()) return }