Cuentas de cliente
Login, registro y las rutas de cuenta generadas por el framework.
Última actualización:
Las cuentas son opcionales para navegar y comprar como invitado. Login, perfil,
direcciones y pedidos vienen resueltos por el framework con Better Auth: no
necesitas AuthProvider ni archivos lib/auth*.
No crees pages/api/auth.$.ts ni pages/api/$.ts: son rutas reservadas
(/api/auth/* y /api/*).
1. Sesión
import { useAuth } from "@ecomiq/storefront";
export function SessionButton({
email,
password,
}: {
email: string;
password: string;
}) {
const { session, isPending, signIn, signOut } = useAuth();
if (isPending) return <span>Cargando…</span>;
if (!session?.user) {
return (
<button onClick={() => void signIn({ email, password })}>
Iniciar sesión
</button>
);
}
return <button onClick={() => void signOut()}>Cerrar sesión</button>;
}2. Registro
registerCustomer necesita el cliente del proxy:
import { createStorefrontProxyApi, registerCustomer } from "@ecomiq/storefront";
await registerCustomer(createStorefrontProxyApi(), {
email: "andrea@ejemplo.pe",
password: "una-clave-segura",
firstName: "Andrea",
lastName: "Ramos",
countryIsoCode: "PE",
phone: "+51 999 888 777",
});Después del registro, llama a signIn para crear la sesión.
Rutas de cuenta
El framework genera y protege:
/api/*— proxy same-origin de la API./api/auth/*— Better Auth./account/— perfil./account/addresses— direcciones./account/ordersy/account/orders/:orderId— pedidos./account/devices— pantalla informativa; el endpoint de dispositivos aún no existe.
/login y /register no se generan. Debes crearlas en pages/.
Los helpers getCustomerMe, patchCustomer, getCustomerAddresses,
createCustomerAddress, updateCustomerAddress, deleteCustomerAddress,
getCustomerOrders y getCustomerOrder reciben primero un Api:
import { createStorefrontProxyApi, getCustomerMe } from "@ecomiq/storefront";
const customer = await getCustomerMe(createStorefrontProxyApi());Variables del servidor
| Variable | Uso |
|---|---|
BETTER_AUTH_SECRET | Secreto de sesión; defínelo como secreto en producción. |
STOREFRONT_API_URL | URL usada por el login; por defecto https://storefront.ecomiq.pe. |
BETTER_AUTH_TRUSTED_HOSTS | Hosts permitidos separados por comas; normalmente es opcional. |
API de login
api.baseUrl de ecomiq.config.js configura serverApi, pero el login de
Better Auth usa STOREFRONT_API_URL. Si trabajas contra otro entorno, define
ambos con la misma API.