Skip to main content

Overview

The Auth Service handles user authentication and registration functionality for the CicloVital application. It provides methods for creating new user accounts and logging in existing users.

API Configuration

The service uses environment-based API URL configuration:
const isProd = import.meta.env.VITE_PROD === 'true';
const API_URL = isProd 
  ? import.meta.env.VITE_URL_API_USER 
  : import.meta.env.VITE_URL_API_LOCAL_USER;

Functions

createUser

Creates a new user account in the system.
export const createUser = async (userData) => {
  // Implementation
}
userData
object
required
User registration data containing user informationStructure:
  • All required user fields for registration
  • Validated by backend API
response
object
Response object with operation statusSuccess Response:
{
  ok: true,
  data: response.data // User data from server
}
Error Response:
{
  ok: false,
  messageError: string // Error message from server or default error
}
HTTP Method: POST
Endpoint: {API_URL}

Example Usage

import { createUser } from '@/services/authService';

const newUser = {
  username: 'johndoe',
  email: '[email protected]',
  password: 'securePassword123'
};

const result = await createUser(newUser);

if (result.ok) {
  console.log('User created:', result.data);
} else {
  console.error('Error:', result.messageError);
}

loginUser

Authenticates a user and establishes a session.
export const loginUser = async (userData) => {
  // Implementation
}
userData
object
required
User login credentialsStructure:
  • Authentication credentials (username/email and password)
  • Validated by backend API
response
object
Response object with authentication statusSuccess Response:
{
  ok: true,
  data: response.data // Authentication token and user data
}
Error Response:
{
  ok: false,
  messageError: string // Error message from server or default error
}
HTTP Method: POST
Endpoint: {API_URL}/login

Example Usage

import { loginUser } from '@/services/authService';

const credentials = {
  email: '[email protected]',
  password: 'securePassword123'
};

const result = await loginUser(credentials);

if (result.ok) {
  console.log('Login successful:', result.data);
  // Store token and user data
  localStorage.setItem('token', result.data.token);
} else {
  console.error('Login failed:', result.messageError);
}

Error Handling

All service methods use a consistent error handling pattern:
  • Server Errors: Returns error.response?.data if available
  • Connection Errors: Returns default message: 'Error al conectar con el servidor.'
  • Response Format: Always returns { ok: boolean, data/messageError }

Source Code

Location: src/services/authService.js

Build docs developers (and LLMs) love