> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raul.ugps.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Login con email y contraseña

> Autentica a un usuario usando credenciales y retorna access token, refresh token y datos base del usuario autenticado. El campo username debe contener el email.



## OpenAPI

````yaml /generated/specs/auth.json post /api/auth/login
openapi: 3.0.0
info:
  title: Raul API - Acceso
  description: Autenticacion, sesiones, usuarios y seguridad base.
  version: 2.0.0
  contact: {}
servers:
  - url: https://api.raul.ugps.io
    description: Production
security: []
tags:
  - name: Auth
    description: Autenticacion y gestion de usuarios
paths:
  /api/auth/login:
    post:
      tags:
        - Auth
      summary: Login con email y contraseña
      description: >-
        Autentica a un usuario usando credenciales y retorna access token,
        refresh token y datos base del usuario autenticado. El campo username
        debe contener el email.
      operationId: AuthController_login
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequestDto'
      responses:
        '200':
          description: Login exitoso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponseDto'
        '401':
          description: Credenciales inválidas
        '403':
          description: Usuario deshabilitado
components:
  schemas:
    LoginRequestDto:
      type: object
      properties:
        username:
          type: string
          description: Email del usuario
          example: user@example.com
        password:
          type: string
          description: Contraseña del usuario
          example: password123
      required:
        - username
        - password
    LoginResponseDto:
      type: object
      properties:
        token:
          type: string
          description: JWT access token
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.access.token
        refresh_token:
          type: string
          description: Refresh token
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.refresh.token
        user:
          description: Datos del usuario
          allOf:
            - $ref: '#/components/schemas/UserResponseDto'
      required:
        - token
        - refresh_token
        - user
    UserResponseDto:
      type: object
      properties:
        id:
          type: string
          description: ID del usuario
          example: 6f0a0d6d-4e2e-4d97-8ef9-8b1dd9d0b123
        email:
          type: string
          description: Email del usuario
          example: admin@ugps.cl
        nombre:
          type: string
          description: Nombre del usuario
          example: Administrador Raul
        rol:
          type: string
          description: Rol del usuario
          example: admin
        avatar_url:
          type: string
          description: URL del avatar del usuario
          example: /uploads/avatars/user-admin.jpg
      required:
        - id
        - email
        - nombre
        - rol

````