API de identidad desatendida: Flujo de contraseƱa olvidada desatendida para clientes y socios
Configure un proceso de restablecimiento de contraseña desatendido en su aplicación utilizando el flujo Contraseña olvidada desatendida, que llama a la API de Contraseña olvidada desatendida. Utilice este flujo junto con otros flujos desatendidos para proporcionar experiencias de identidad nativas. Con este flujo, un usuario que olvidó su contraseña puede verificar su identidad y crear una contraseña sin dejar nunca la experiencia con marca de su aplicación.
Ediciones necesarias
| Disponible en: Salesforce Classic (no disponible en todas las organizaciones) y Lightning Experience |
| Disponible en: Enterprise Edition, Unlimited Edition y Developer Edition |
Este contenido de ayuda describe cómo configurar el flujo y cómo funciona. Para configurar una implementación de ejemplo de extremo a extremo, consulte la GuĆa de implementación de Identidad desatendida.
Para asegurarse de completar todos los pasos previos, consulte Listas de comprobación de implementación de identidad desatendida.
El flujo Contraseña olvidada desatendida resuelve una situación común. Cuando un usuario olvida su contraseña y no puede iniciar sesión, este flujo proporciona la función para restablecerla sin interrumpir la experiencia con marca de su aplicación.
Debido a que gestiona Salesforce Customer Identity a travĆ©s de sitios de Experience Cloud, puede configurar el flujo ContraseƱa olvidada desatendida solo para clientes y socios que utilizan un subdominio de sitio de Experience Cloud, como https://MyExperienceCloudSite.my.site.com. No puede configurar este flujo para empleados que acceden a sitios de Experience Cloud o para empleados que acceden a la plataforma Salesforce con login.salesforce.com o una URL de inicio de sesión de Mi dominio especĆfica de la organización.
El Flujo Contraseña olvidada desatendida funciona de forma similar para clientes privados, como aplicaciones cliente-servidor y clientes públicos, como aplicaciones de pÔgina única o aplicaciones móviles. La diferencia principal es la configuración de seguridad que habilita para los clientes privados y los clientes públicos. Estos parÔmetros de seguridad controlan los parÔmetros que se le requieren pasar en la solicitud de restablecimiento de contraseña inicial. Existen dos parÔmetros de seguridad, ambos en la pÔgina Inicio de sesión y registro de Experience Cloud.
- Requerir autenticación para acceder a esta API
- Requerir reCAPTCHA para acceder a esta API
Para clientes privados, como mĆnimo, le recomendamos activar Requerir autenticación para acceder a esta API. Con este parĆ”metro activado, debe incluir un token de acceso emitido a un usuario de integración interno en sus solicitudes a la API de ContraseƱa olvidada desatendida. El token de acceso debe incluir el Ć”mbito de forgot_password. Para obtener una protección adicional, tambiĆ©n puede activar Requerir reCAPTCHA para acceder a esta API.
Para clientes públicos como aplicaciones móviles, le recomendamos activar Requerir reCAPTCHA para acceder a esta API. Con este parÔmetro activado, debe incluir un token de reCAPTCHA en su solicitud inicial a la API de Contraseña olvidada desatendida. No recomendamos activar Requerir autenticación para acceder a esta API porque un cliente público no puede mantener el secreto del token de acceso.
Los clientes públicos también deben implementar una pasarela de API entre el cliente y Salesforce para mantener la seguridad.
Para ampliar sus opciones de plantilla de email para el email de contraseña simultÔnea (OTP) enviado a usuarios finales durante el flujo, suscriba a la lista de admisión de plantillas de email y cree una lista de admisión con plantillas personalizadas. Consulte Utilizar múltiples plantillas de email para flujos desatendidos.
De forma predeterminada, los usuarios especifican el nombre de usuario para restablecer su contraseña. Para proporcionar a los usuarios mÔs opciones, configure la detección de usuarios desatendida. Por ejemplo, desarrolle un flujo en el que los usuarios especifiquen su dirección de email, número de teléfono o incluso un número de pedido. Consulte Inicio de sesión desatendido sin un nombre de usuario.
Este diagrama muestra cómo interactúa su aplicación con Salesforce para restablecer una contraseña.
Echemos un vistazo con detalle a los pasos de este flujo que implican interacciones entre su usuario, su aplicación y Salesforce.
- Su cliente solicita un restablecimiento de contraseƱa (1).
- Salesforce devuelve un mensaje de operación correcta (2) y comprueba que el usuario existe y estÔ verificado.
- Salesforce genera y envĆa por email una contraseƱa simultĆ”nea (3).
- Su cliente envĆa la nueva contraseƱa (4).
- Salesforce verifica las contraseñas y devuelve un mensaje de operación correcta (5).
Su cliente solicita un restablecimiento de contraseƱa
DespuĆ©s de que su usuario inicie el proceso de restablecimiento de contraseƱa, su cliente envĆa una solicitud POST al extremo de contraseƱa olvidada desatendida en su sitio de Experience Cloud (1).
Este es el URI para la solicitud POST.
/services/auth/headless/forgot_passwordIncluya estos encabezados en la solicitud.
| Encabezado | ¿Obligatorio? | Descripción |
|---|---|---|
Authorization: Bearer
|
Este encabezado es obligatorio si activa Requerir autenticación para acceder a esta API en la pÔgina Inicio de sesión y registro de Experience Cloud. Para clientes privados, recomendamos encarecidamente que active siempre este ajuste. Para clientes públicos, nunca recomendamos activar este parÔmetro. |
Contiene un token de acceso emitido a un usuario de integración interno. Para obtener el token de acceso, puede utilizar cualquier flujo de OAuth estÔndar que admita Salesforce. Asegúrese de asignar el Ômbito forgot_password a la aplicación conectada que emite el token, o pÔselo como un parÔmetro durante el flujo de OAuth. |
Content-Type
|
No. | Especifica el formato de su solicitud, como application/json. |
Incluya estos parƔmetros en el cuerpo de la solicitud.
| ParÔmetro | ¿Obligatorio? | Descripción |
|---|---|---|
username
|
Obligatorio si no estÔ utilizando la detección de usuarios desatendida. | El nombre de usuario para la cuenta. |
login_hint
|
Obligatorio si estĆ” utilizando un controlador Apex de detección de usuarios desatendida. | Un identificador que su controlador de Apex utiliza para buscar la cuenta de Salesforce de un usuario. Por ejemplo, recopile el nĆŗmero de pedido de un usuario en su aplicación y pĆ”selo en el parĆ”metro login_hint. El valor login_hint se envĆa directamente a su controlador Apex. |
customdata
|
Es obligatorio si estÔ utilizando un controlador de detección de usuarios desatendida que gestiona datos personalizados. Por ejemplo, si también estÔ utilizando el controlador con un flujo de inicio de sesión que gestiona datos personalizados, debe pasar los datos personalizados en el flujo Contraseña olvidada. De lo contrario, es opcional pero puede ser útil para ayudar a su gestor a encontrar el usuario. |
Cadena JSON que contiene datos adicionales que su controlador de descubrimiento desatendido de Apex utiliza para buscar la cuenta de Salesforce del usuario. Por ejemplo, pase información sobre la configuración regional del usuario. |
emailtemplate
|
No. | El nombre del desarrollador de la plantilla de email personalizada. Si activó Utilizar solo plantillas de email en la lista de admisión en su configuración de Experience Cloud, este parÔmetro solo puede incluir una plantilla de email de la lista de admisión. Si no activa la lista de admisión de plantillas de email, este parÔmetro puede incluir cualquier plantilla en su organización. Para controlar el idioma de una plantilla de email personalizada, cree una plantilla en el idioma que desee. Si no incluye este parÔmetro, Salesforce utiliza la plantilla de email configurada en su configuración de Experience Cloud, independientemente de si la lista de admisión de plantillas de email estÔ activada. Con esta opción, Salesforce determina el idioma desde la configuración del usuario. Consulte Configuración de idioma, configuración regional y divisa. |
recaptcha
|
Obligatorio si se le aplican estas condiciones.
|
Un token cifrado emitido por la API de reCAPTCHA de Google cuando un usuario completa un reto de reCAPTCHA. |
recaptchaevent
|
Obligatorio si se le aplican estas condiciones:
|
Un objeto JSON que contiene estos subparƔmetros.
Para obtener mÔs información, consulte la documentación reCAPTCHA de Google. |
A continuación se proporciona un ejemplo de solicitud para un cliente público que estÔ utilizando una plantilla de email personalizada. Incluye un token reCAPTCHA para la seguridad y un parÔmetro emailtemplate con el nombre del desarrollador de una plantilla personalizada.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
"username":"lhansen@example.com",,
"emailtemplate":"unfiled$public/SalesNewCustomerEmail",
"recaptcha": "<recaptcha token>"
}
A continuación se incluye un ejemplo de solicitud para un cliente privado que estÔ utilizando la plantilla de email predeterminada. Incluye un token de acceso por seguridad.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"username": "lhansen@example.com"
}A continuación se incluye un ejemplo de solicitud para un cliente privado que utiliza la detección de usuarios desatendida.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"login_hint": "<user identifier such as email address, phone number, order number>",
"customdata": {
"firstName": "Lyle",
"lastName": "Hansen"
}
}(Opcional) El controlador de detección de usuarios desatendida encuentra el usuario
Si estÔ utilizando un controlador de detección de usuarios desatendida, el controlador acepta los parÔmetros login_hint y customdata, y encuentra el usuario asociado. El controlador confirma que la dirección de email o el número de teléfono del usuario estÔ verificado.
Para obtener un controlador de ejemplo, consulte Auth.HeadlessUserDiscoveryHandler.
Salesforce devuelve un mensaje de operación correcta y verifica el nombre de usuario
Cuando Salesforce recibe correctamente la solicitud de contraseƱa olvidada, envĆa un mensaje de operación correcta al cliente (2). Si no estĆ” utilizando un controlador de descubrimiento desatendido, Salesforce verifica que el nombre de usuario coincide con una cuenta. Si el nombre de usuario no coincide con una cuenta, el flujo se detiene.
Este es un ejemplo de una respuesta satisfactoria.
{
"status": "success",
"status_code": "otp_sent"
}Si la solicitud falla, Salesforce devuelve un mensaje de error describiendo la solicitud. Para la mayorĆa de los errores, Salesforce devuelve el mensaje de error en este formato.
{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}
Por ejemplo, si el cliente utiliza el tipo incorrecto de solicitud HTTPS, Salesforce devuelve esta respuesta de error.
{
"status_code": "post_required",
"invalid request": "use a POST request",
"status": "failed"
}
Para el código de error invalid_recaptcha, la respuesta incluye información adicional del servicio reCAPTCHA de Google. Este es el formato de estas respuestas.
{
"status_code": "invalid_recaptcha",
"invalid_request: "invalid reCAPTCHA token",
"status": "failed",
"recaptcha_response": {
"success": <true or false>,
"challenge_ts": <timestamp of the challenge in ISO format (yyyy-MM-dd'T'HH:mm:ssZZ)>,
"hostname": "<host name of the client where the reCAPTCHA was solved>",
"error-codes": [<error codes from Google reCAPTCHA...>]
}
}
A continuación se incluye una descripción general de las respuestas de error.
| Código de error | Nombre de error | Descripción de error | Detalles y resolución |
|---|---|---|---|
authentication_req
|
invalid_request
|
include an authentication header
|
Este error se produce si activa el parĆ”metro Requerir autenticación para acceder a esta API (siempre recomendado para clientes privados) y no envĆa el token de acceso correctamente. EnvĆe el token de acceso en un encabezado Authorization:Bearer. |
headless_forgot_password_disabled
|
invalid_experience
|
enable the headless forgot password flow
|
Active Permitir restablecimiento de contraseña a través del flujo Contraseña olvidada desatendida en su configuración de Experience Cloud. Consulte Configurar parÔmetros de Experience Cloud para el flujo Contraseña olvidada desatendida. |
https_required
|
invalid_request
|
use a URL that starts with HTTPS
|
La solicitud no se ajusta al protocolo HTTPS. Revise la especificación del Protocolo de transferencia de hipertexto, actualice la solicitud y vuelva a enviarla. |
invalid_authorization
|
invalid_request
|
authentication failure
|
Este error se produce si ha activado el parÔmetro Requerir autenticación para acceder a esta API (siempre recomendado para clientes privados) y el token de acceso incluido en la solicitud no es vÔlido. Por ejemplo, el token de acceso estÔ caducado o no incluye el Ômbito forgot_password. Compruebe el token de acceso y obtenga uno nuevo si fuera necesario. |
invalid_domain
|
invalid_request
|
invalid domain
|
Las solicitudes para este extremo solo son compatibles con dominios de sitio de Experience Cloud. |
invalid_params
|
invalid_request
|
invalid parameters
|
La solicitud contiene parƔmetros no compatibles o los parƔmetros no tienen el formato correcto. Revise los parƔmetros de encabezado y cuerpo admitidos y las solicitudes de ejemplo para inicializar el restablecimiento de contraseƱa. |
invalid_recaptcha
|
invalid_request
|
invalid reCAPTCHA token
|
Para este error, la respuesta incluye una reclamación Para obtener mĆ”s información sobre errores especĆficos, consulte estos recursos en la documentación de Google. |
invalid_template
|
invalid_param
|
invalid email template
|
Confirme que el cliente estƩ enviando el nombre del desarrollador de una plantilla de email personalizada en el parƔmetro emailtemplate. |
missing_auth_params
|
invalid_request
|
include an authentication header or reCAPTCHA
parameter
|
Las solicitudes a este extremo deben incluir, como mĆnimo, un token de acceso o un token de reCAPTCHA, dependiendo de su tipo de aplicación y configuración de Experience Cloud. Revise Configurar parĆ”metros de Experience Cloud para el flujo ContraseƱa olvidada desatendida y actualice la solicitud para que coincida con su configuración. |
not_allowed_template
|
invalid_param
|
email template not allowlisted
|
Este error se produce si se activa la lista de admisión de plantillas de email y el valor del parÔmetro emailtemplate no forma parte de dicha lista de admisión. Para obtener mÔs información acerca de la lista de admisión, consulte Utilizar múltiples plantillas de email para flujos desatendidos. |
otp_generation_failed
|
otp_error
|
OTP generation failed
|
Salesforce no pudo generar una OTP. Intente enviar la solicitud de nuevo. |
post_required
|
invalid_request
|
use a POST request
|
No se admite el tipo de solicitud. EnvĆe una solicitud POST HTTPS. |
recaptcha_req
|
invalid_request
|
include a reCAPTCHA parameter
|
Este error se produce si activa Solicitar reCAPTCHA para acceder a esta API en la configuración de su sitio de Experience Cloud y la solicitud no incluye un token de reCAPTCHA en el parÔmetro recaptcha. Incluya un token del sistema reCAPTCHA. |
unknown_error
|
unknown_error
|
retry your request
|
Se produjo un problema al enviar la solicitud, pero no sabemos qué falló. Pruebe a comprobar su conexión a Internet, actualizar la pÔgina y volver a enviar la solicitud. |
user_account_locked
|
invalid_user
|
user account is locked
|
El usuario estĆ” bloqueado en su cuenta. Para restaurar su acceso, desbloquee el usuario. |
Salesforce genera y envĆa por email una contraseƱa simultĆ”nea
Salesforce verifica que hay una cuenta con el nombre de usuario del usuario en el sistema. Si la cuenta existe, genera una contraseƱa simultĆ”nea y la envĆa en un email (3) a la dirección de email de un archivo. Este email se genera utilizando la plantilla de email predeterminada o haciendo referencia a una plantilla personalizada desde el parĆ”metro emailtemplate en la solicitud inicial. Para obtener información acerca de la personalización de la plantilla de email, consulte Personalizar email enviado desde sitios de Experience Cloud.
Su cliente envĆa la nueva contraseƱa
Cuando el cliente recibe el mensaje de operación correcta de Salesforce, el cliente muestra de forma nativa una pĆ”gina de restablecimiento de contraseƱa al usuario. Esta pĆ”gina debe incluir campos para la contraseƱa simultĆ”nea y la nueva contraseƱa del usuario. La nueva contraseƱa estĆ” sujeta a los requisitos de contraseƱa de Salesforce. DespuĆ©s de que el usuario rellene estos campos, el cliente envĆa a otro el nombre de usuario, la OTP y la nueva contraseƱa en otra solicitud POST al extremo de contraseƱa olvidada (4).
Incluya estos encabezados en la solicitud.
| Encabezado | ¿Obligatorio? | Descripción |
|---|---|---|
Authorization: Bearer
|
Este encabezado es obligatorio si activa Requerir autenticación para acceder a esta API en la pÔgina Inicio de sesión y registro de Experience Cloud. Para clientes privados, recomendamos encarecidamente que active siempre este ajuste. Para clientes públicos, nunca recomendamos activar este parÔmetro. |
Contiene un token de acceso emitido a un usuario de integración interno. Para obtener el token de acceso, puede utilizar cualquier flujo de OAuth estÔndar que admita Salesforce. Asegúrese de asignar el Ômbito forgot_password a la aplicación conectada que emite el token, o pÔselo como un parÔmetro durante el flujo de OAuth. |
Content-Type
|
No. | Especifica el formato de su solicitud, como application/json. |
Incluya estos parƔmetros en el cuerpo de la solicitud.
| ParÔmetro | ¿Obligatorio? | Descripción |
|---|---|---|
username
|
Obligatorio si no estÔ utilizando un controlador de detección de usuarios desatendida. | El nombre de usuario para la cuenta. |
login_hint
|
Obligatorio si estÔ utilizando un controlador de detección de usuarios desatendida. | El identificador que su controlador de Apex ha utilizado para buscar la cuenta de Salesforce del usuario. |
otp
|
SĆ. | La contraseƱa simultĆ”nea que Salesforce generó y envió por email al usuario. |
newpassword
|
SĆ. | La nueva contraseƱa que creó el usuario. |
A continuación se incluye un ejemplo de solicitud para un cliente privado.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}
A continuación se incluye una solicitud similar para clientes públicos que no incluye un token de acceso. Como el token de reCAPTCHA se envió en la solicitud inicial, no se requiere en esta.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}Salesforce verifica las contraseñas y devuelve un mensaje de operación correcta
Cuando Salesforce recibe la solicitud de contraseƱa, verifica que la contraseƱa simultĆ”nea es vĆ”lida y comprueba que la nueva contraseƱa cumple los requisitos. Si se cumplen estos dos criterios, establece la nueva contraseƱa. DespuĆ©s de cambiar la contraseƱa, Salesforce envĆa un mensaje de operación correcta al cliente (5). Este es el aspecto del mensaje de operación correcta.
{
"status": "success",
"status_code": "success"
}Su cliente debe notificar al usuario que se aceptó el cambio y que puede iniciar sesión con su nueva contraseña.
Si el cliente envĆa una OTP incorrecta o la nueva contraseƱa no cumple los requisitos de seguridad estĆ”ndar de Salesforce, el restablecimiento de la contraseƱa falla. Si el restablecimiento de contraseƱa falla, su cliente puede realizar un nĆŗmero establecido de intentos para restablecer la contraseƱa utilizando la misma OTP. Usted controla el nĆŗmero mĆ”ximo de intentos en su configuración de Experience Cloud. Tras demasiados intentos fallidos, su cliente debe enviar una nueva solicitud de contraseƱa de restablecimiento inicial de modo que se pueda generar una nueva contraseƱa simultĆ”nea y enviarla por email a su usuario.
Si el cambio de contraseƱa no se realiza correctamente, Salesforce devuelve una respuesta de error en este formato.
{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}
A continuación se incluye una descripción general de los errores para esta solicitud.
| Código de error | Nombre de error | Descripción de error | Detalles y resolución |
|---|---|---|---|
headless_forgot_password_disabled
|
invalid_experience
|
enable the headless forgot password flow
|
Active Permitir restablecimiento de contraseña a través del flujo Contraseña olvidada desatendida en su configuración de Experience Cloud. Consulte Configurar parÔmetros de Experience Cloud para el flujo Contraseña olvidada desatendida. |
https_required
|
invalid_request
|
use a URL that starts with HTTPS
|
La solicitud no se ajusta al protocolo HTTPS. Revise la especificación del Protocolo de transferencia de hipertexto, actualice la solicitud y vuelva a enviarla. |
invalid_domain
|
invalid_request
|
invalid domain
|
Las solicitudes para este extremo solo son compatibles con dominios de sitio de Experience Cloud. |
invalid_otp
|
otp_error
|
invalid OTP
|
La OTP no coincide con lo que Salesforce envió al usuario o estÔ caducada. Consulte la OTP y solicite una nueva si es necesario. |
invalid_params
|
invalid_request
|
invalid parameters
|
La solicitud contiene parƔmetros no compatibles o los parƔmetros no tienen el formato correcto. Revise los parƔmetros de encabezado y cuerpo admitidos y las solicitudes de ejemplo para cambiar la contraseƱa. |
password_policy_check_failure
|
password error
|
password does not follow policy
|
La contraseƱa no sigue la polĆtica de contraseƱa configurada para su organización. AdemĆ”s de la polĆtica que establece, Salesforce aplica algunos requisitos de contraseƱa para todas las contraseƱas de usuario. Consulte Establecer polĆticas de contraseƱa. |
post_required
|
invalid_request
|
use a POST request
|
El tipo de solicitud no es vĆ”lido. EnvĆe una solicitud POST HTTPS. |
regenerate_otp
|
otp_error
|
user made too many invalid attempts; regenerate
OTP
|
El usuario intentó sin éxito utilizar la OTP demasiadas veces. Solicite una nueva OTP. Puede controlar el número mÔximo de intentos de restablecimiento de contraseña que permite antes de que el usuario solicite una nueva OTP. Consulte Configurar parÔmetros de Experience Cloud para el flujo Contraseña olvidada desatendida. |
unknown_error
|
unknown_error
|
retry your request
|
Se produjo un problema al enviar la solicitud, pero no sabemos qué falló. Pruebe a comprobar su conexión a Internet, actualizar la pÔgina y volver a enviar la solicitud. |
user_account_locked
|
invalid_user
|
user account is locked
|
El usuario estĆ” bloqueado en su cuenta. Para restaurar su acceso, desbloquee el usuario. |

