> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Cómo personalizar el formulario de registro de usuario con campos adicionales mediante Lock o la API de Auth0.

# Registro personalizado con Lock o la API de Auth0.

Puede personalizar el formulario de registro de usuario con campos adicionales, además del correo electrónico y la contraseña, al usar Lock o la API de Auth0.

Hay muchos factores que debe considerar antes de elegir entre [Lock y una interfaz de usuario personalizada](/es/docs/customize/login-pages/classic-login/customize-with-lock-sdk). Por ejemplo, con Lock puede redirigir a otra página para capturar datos o usar perfiles progresivos. Al usar la API de Auth0, puede capturar campos personalizados y almacenarlos en una base de datos. Existen ciertas limitaciones de personalización que debe tener en cuenta al elegir el método que mejor se adapte a sus necesidades. Algunas personalizaciones habituales incluyen agregar un username y verificar la seguridad de la contraseña.

<Card title="Se recomienda Universal Login">
  Auth0 ofrece una opción de [Universal Login](/es/docs/authenticate/login/auth0-universal-login) que puede usar en lugar de diseñar sus propias páginas personalizadas de inicio de sesión o registro, o de usar las integradas en cualquiera de las bibliotecas de Auth0. Si desea ofrecer opciones de registro e inicio de sesión y solo necesita personalizar el nombre de la aplicación, el logotipo y el color de fondo, Universal Login puede ser una opción más fácil de implementar.
</Card>

<div id="using-lock">
  ## Uso de Lock
</div>

Lock admite el [registro con campos personalizados](/es/docs/libraries/lock/lock-configuration).

La opción `additionalSignUpFields` de Lock solo funciona con registros mediante base de datos. Para los registros que usan <Tooltip tip="Proveedor de identidad (IdP): servicio que almacena y gestiona identidades digitales." cta="Ver glosario" href="/es/docs/glossary?term=identity+providers">proveedores de identidad</Tooltip> sociales, no es posible recopilar estos campos de la misma forma con Lock, pero existen otras dos opciones para permitir registros sociales con IdP en Lock y seguir recopilando campos personalizados adicionales.

<div id="redirect-to-another-page">
  ### Redirigir a otra página
</div>

Una forma de usar el registro con proveedores sociales en Lock y recopilar campos personalizados es usar [Rules de redirección](/es/docs/customize/rules/redirect-users) para redirigir al usuario a otra página donde se le solicite información adicional y, después, redirigirlo de nuevo para finalizar la transacción de autenticación.

<div id="progressive-profiling">
  ### Perfilado progresivo
</div>

Otra forma de recopilar datos de campos personalizados al registrar usuarios con proveedores sociales es mediante el [perfilado progresivo](/es/docs/manage-users/user-accounts/user-profiles/progressive-profiling), que te permite ir completando gradualmente los datos del perfil de usuario con el tiempo. Recopilas solo la información mínima imprescindible durante el registro, pero cuando un usuario vuelve a interactuar con tu aplicación, recopilas una pequeña cantidad de datos (quizá una sola pregunta) cada vez hasta completar su perfil. Esto te permite obtener la información deseada con menos fricción, ya que el objetivo de usar un IdP social para el registro es hacer que el proceso sea más simple y ágil para el usuario.

<div id="using-the-api">
  ## Uso de la API
</div>

<div id="create-a-signup-form-to-capture-custom-fields">
  ### Cree un formulario de registro para capturar campos personalizados
</div>

`name` es un atributo del perfil de usuario y `color` es un campo personalizado.

Actualmente no hay forma de validar los campos personalizados proporcionados por el usuario durante el registro. La validación debe realizarse mediante una [Rule](/es/docs/customize/rules) de Auth0 al iniciar sesión, o con lógica personalizada **del lado del servidor** en su aplicación.

<div id="send-the-form-data">
  ### Envíe los datos del formulario
</div>

Envíe una solicitud POST al endpoint [/dbconnections/signup](https://auth0.com/docs/api/authentication/reference#signup) de Auth0.

Deberá enviar:

* El `client_id` de su aplicación
* El `email` y la `password` del usuario que se va a registrar
* El nombre de la `connection` de base de datos donde se almacenarán los datos del usuario
* Cualquier atributo del perfil de usuario que desee actualizar, incluidos `given_name`, `family_name`, `name`, `nickname` y `picture`.
* Cualquier campo personalizado como parte de `user_metadata`

<div id="custom-fields-limitations">
  ## Limitaciones de los campos personalizados
</div>

Cuando sus usuarios se registran, los campos personalizados se envían como parte de `user_metadata`. Las limitaciones de este campo son las siguientes:

* `user_metadata` no debe contener más de 10 campos
* `user_metadata.field` debe ser una cadena
* `user_metadata.field.value.length` debe tener menos de 500 caracteres
* `user_metadata.field.length` debe tener menos de 100 caracteres
* El límite de tamaño actual de `user_metadata` es de **16 MB**

<div id="redirect-mode">
  ## Modo de redirección
</div>

Después de que el usuario inicie sesión correctamente, Auth0 lo redirigirá a la URL de callback que hayas configurado con un <Tooltip tip="JSON Web Token (JWT): formato estándar de ID Token (y, a menudo, de Token de acceso) que se utiliza para representar claims de forma segura entre dos partes." cta="Ver glosario" href="/es/docs/glossary?term=JWT">JWT</Tooltip> (`id_token`) en la cadena de consulta.

Luego, tu servidor deberá llamar a la API v2 para agregar los campos personalizados necesarios al perfil del usuario.

<div id="add-username-to-the-signup-form">
  ## Añadir username al formulario de registro
</div>

Una personalización habitual del registro es añadir un username al formulario de registro.

Para habilitar esta función, activa la opción **Requiere username** en la sección [Conexiones > Base de datos](https://manage.auth0.com/#/connections/database/) del Dashboard, en la pestaña **Configuración**, de la conexión que quieras editar.

Captura el campo `username` en tu formulario personalizado y añádelo al cuerpo de la solicitud.

<div id="optional-verify-password-strength">
  ## Opcional: Verifique la solidez de la contraseña
</div>

Las políticas de contraseñas para las conexiones de base de datos se pueden configurar en el Dashboard. Para obtener más información, consulte: [Solidez de la contraseña en las conexiones de base de datos de Auth0](/es/docs/authenticate/database-connections/password-strength).

Si es necesario para implementar formularios de registro personalizados, las políticas de contraseñas configuradas, junto con otra información de la conexión, se pueden recuperar desde la [Management API v2](https://auth0.com/docs/api/management/v2#!/Connections/get_connections_by_id). El resultado puede analizarse del lado del cliente y contendrá información sobre la política de contraseñas actual (o las políticas) configurada en el Dashboard para esa conexión.
