# WhatsApp

Permite que los usuarios se registren e inicien sesión con un código de un solo uso enviado por WhatsApp, junto al correo electrónico. `vela enable whatsapp` añade la opción "Continuar con WhatsApp" a las páginas de login y registro que creó [`vela enable auth`](/es/enable/auth).

### Sintaxis

```
$ vela enable whatsapp
```

Ejecuta primero [`vela enable auth`](/es/enable/auth). El inicio de sesión con WhatsApp viene de un plugin de `pocketbase-server` 0.40.5-beta.5 y posteriores; con un PocketBase anterior el comando se detiene e indica qué actualizar.

### Qué añade

- Una opción **Continuar con WhatsApp** en `/login` y `/signup`. El usuario introduce su número, recibe un código por WhatsApp y lo escribe en `/whatsapp/[token]`.
- `src/lib/server/whatsapp.ts`, las llamadas al plugin de PocketBase.
- Los campos `phone` y `phoneVerified` en `users`. El número es único entre los usuarios que tienen uno.
- Las cuentas nuevas llegan a `/welcome` para elegir un nombre, ya que solo tienen un número.

### El correo electrónico pasa a ser opcional

Un registro con WhatsApp no tiene correo electrónico, así que `enable whatsapp` hace opcional `email` en `users`. Las páginas que generan auth, [teams](/es/enable/teams) y [payments](/es/enable/payments) ya admiten usuarios sin él:

- Los ajustes les ocultan las secciones de correo, verificación y contraseña.
- La navegación y las listas de miembros de equipo muestran el nombre y, si no hay, el número de teléfono.
- La facturación crea su cliente de Stripe a partir del nombre y el número de teléfono.

Las invitaciones a equipos siguen yendo a una dirección de correo, así que un usuario sin correo no ve invitaciones pendientes. Todavía no hay una página para añadir un correo a una cuenta creada con un número de teléfono.

### Desarrollo local

Hasta que configures un remitente, los códigos no se envían: aparecen en los logs de PocketBase de `vela dev`. Regístrate con cualquier número en formato internacional, como `+16165550123`, y copia el código de ahí.

### Enviar códigos en producción

Un destino de despliegue sin remitente oculta la opción de WhatsApp. Configura uno con [`vela env`](/es/env). Los códigos salen por el relay de VelaStack:

```
$ vela env set VELASTACK_API_KEY=...
```

O directamente por la API de WhatsApp Cloud, con una plantilla de mensaje aprobada en tu cuenta de Meta Business:

```
$ vela env set WHATSAPP_PHONE_NUMBER_ID=... WHATSAPP_ACCESS_TOKEN=... WHATSAPP_TEMPLATE_NAME=...
```

El remitente sigue a las credenciales configuradas. El inicio de sesión con WhatsApp se activa con una migración que escribe `enable whatsapp`, así que llega a cada despliegue con el resto de tus migraciones.

### Páginas personalizadas

`enable whatsapp` reescribe las páginas de login y registro, y solo lo hace mientras sigan siendo las páginas que escribió `enable auth`. Si cambiaste un formulario, su página, código de servidor y esquema se dejan como están y se marcan como fallidos; el otro formulario se actualiza igualmente. Añade WhatsApp a tu versión a mano, usando las [páginas con WhatsApp](https://github.com/velastack/patterns/tree/main/src/patterns/enable/whatsapp/templates) como referencia.

Desactívalo con [`vela disable whatsapp`](/es/disable/whatsapp).