Authentication API

Controlador: app/Http/Controllers/Api/AuthController.php (397 líneas)


POST /api/auth/login

Login con email + password. Devuelve token Sanctum.

Request:

{
  "email": "[email protected]",
  "password": "miPassword"
}

Response (200):

{
  "success": true,
  "data": {
    "user": {
      "id": 1,
      "name": "Juan Pérez",
      "username": "juanp",
      "email": "[email protected]",
      "imagen_url": "https://dominio.com/perfiles/uuid.jpg",
      "profession": "Estudiante",
      "insignia": null
    },
    "token": "1|abc123..."
  },
  "message": "Login Exitoso"
}

Error (401):

{
  "success": false,
  "message": "Las credenciales son incorrectas."
}

Flujo interno:

  1. Valida email + password
  2. Busca usuario por email
  3. Verifica password con Hash::check()
  4. Genera token: $user->createToken('mobile-app')->plainTextToken
  5. Construye imagen_url: asset('perfiles/' . $user->imagen) o fallback asset('img/usuario.svg')

POST /api/auth/register

Registro de nuevo usuario. Usa RegisterRequest para validación.

Request:

{
  "name": "María López",
  "username": "marialop",
  "email": "[email protected]",
  "password": "miPassword123",
  "password_confirmation": "miPassword123",
  "role": "estudiante",
  "universidad_id": 1,
  "carrera_id": 3
}

Validación (RegisterRequest):

Response (201):

{
  "success": true,
  "data": {
    "user": { ... },
    "token": "2|xyz789..."
  },
  "message": "Usuario registrado exitosamente"
}