Autenticación de cliente por teléfono

Los usuarios con rol client inician sesión con el teléfono móvil colombiano (10 dígitos, sin +57 en formularios).

Login

POST /oauth/token con grant_type=password:

  • username con @ → búsqueda por email (staff y clientes con email).

  • username sin @ → normalización a 10 dígitos y búsqueda por phone + role=client.

El JWT incluye el claim phone.

Registro

POST /public/auth/register — body: phone, password, first_name, last_name, document, document_type_id, email (opcional).

Recuperación de contraseña

  • POST /public/auth/password-reset/request{ phone }

  • POST /public/auth/password-reset/confirm{ phone, code, new_password }

SMS: variable SMS_PROVIDER=twilio o consola en desarrollo.

Base de datos

Migración 078_client_phone_required.sql: clientes deben tener phone no vacío.