Controlador: app/Http/Controllers/Api/AuthController.php (397 líneas)
/api/auth/loginLogin 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:
Hash::check()$user->createToken('mobile-app')->plainTextTokenasset('perfiles/' . $user->imagen) o fallback asset('img/usuario.svg')/api/auth/registerRegistro 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):
name: required, string, max 255username: required, string, max 15, uniqueemail: required, email, unique, validación con EmailDomain rulepassword: required, min 6, confirmedrole: required, in: aspirante, estudiante, egresadouniversidad_id / carrera_id: requeridos condicionalmente según el rolResponse (201):
{
"success": true,
"data": {
"user": { ... },
"token": "2|xyz789..."
},
"message": "Usuario registrado exitosamente"
}