URL ResetPassword
Restablece o actualiza contraseñas de usuarios. Este mandato funciona independientemente de la modalidad de autenticación: Base de datos, LDAP o tercero.
Los usuarios siguientes pueden utilizar la función ResetPassword:
- Los administradores y usuarios registrados de la tienda para actualizar sus propias contraseñas, mientras están autenticados.
- Los usuarios registrados que desean conectarse pero que han olvidado su contraseña. Pueden utilizar este mandato para restablecer la contraseña sin conectarse. Hay tres métodos que puede utilizar para generar un inicio de sesión temporal para el usuario:
Importante: A partir de la versión 9.1.7.0, los dos primeros métodos están obsoletos y se eliminarán en una futura versión.
- Se envía por correo electrónico al usuario registrado una contraseña generada aleatoriamente. Este método está obsoleto.
- Un código de validación largo que se basa en su ID y otra información se envía por correo electrónico al usuario. A continuación, el usuario introduce el código de validación junto con una nueva contraseña para actualizar sus credenciales de acceso. Este método está obsoleto.
Para obtener más información, consulte Configuración Restablecer contraseña para utilizar códigos de validación largos..
Un código de validación largo no siempre es práctico. Por ejemplo, cuando un usuario está trabajando desde un teléfono móvil. En su lugar, se envía un código de validación numérico corto. Este es el método recomendado para utilizarlo con HCL Commerce la versión 9.1.7.0 y posterior.
Para obtener más información, consulte Configuración Restablecer contraseña para utilizar códigos de validación cortos..
Como se ha señalado, los métodos anteriores, aunque están disponibles temporalmente, acabarán por desactivarse.
Utilice este URL con SSL (Secure Sockets Layer) para asegurarse de que la contraseña de inicio de sesión y la información personal están cifradas. Para hacer esto, escriba el URL utilizando el protocolo seguro HTTPS.
Estructura de URL
- http:// host_name/path/
- El nombre completo del servidor HCL Commerce y la vía de acceso de configuración
Valores de parámetros
- langId
- Establece o restablece el idioma preferido durante el tiempo que dura la sesión; los idiomas soportados para una tienda se encuentran en la tabla STORELANG
- URL
- El URL al que se debe llamar cuando el mandato se completa satisfactoriamente.
- storeId
- El número de referencia de una tienda
- reLogonURL
- El URL al que se redirigirá el mandato ResetPassword en el caso de una condición de error
- logonId
- El ID de conexión del usuario cuya contraseña se ha de restablecer
- challengeAnswer
- Respuesta a una pregunta de identificación; que se utiliza para confirmar la identidad del usuario
- logonPassword
- La nueva contraseña del usuario
- logonPasswordOld
- La contraseña actual del usuario
- logonPasswordVerify
- La contraseña verificada del usuario, que debe ser idéntica a logonPassword
- validationCode
- El código generado aleatoriamente que se envía por correo electrónico al usuario registrado.
Ejemplo 1: Restablecer contraseña mientras no se está autenticado (envía por correo electrónico una contraseña temporal)
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?URL=basemall.jsp
&logonId=a&challengeAnswer=a
Si el usuario es un invitado, el mandato verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera una contraseña arbitraria, se actualiza la base de datos y se envía por correo electrónico la contraseña al usuario (identificado por el valor del parámetro logonId).
Ejemplo 2: Restablecer contraseña cuando el usuario está autenticado
Este ejemplo restablece una contraseña especificando las contraseñas nueva y antigua, para los usuarios registrados que desean actualizar sus contraseñas:
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?URL=basemall.jsp
&logonPasswordOld=a&logonPassword=b&logonPasswordVerify=b
Si el usuario es un cliente registrado, o un administrador, verifica que la antigua contraseña sea correcta y que la nueva contraseña coincida con la contraseña verificada. También verifica que la contraseña cumple con los requisitos definidos por la política de contraseñas de este usuario. Si se satisfacen todas las condiciones, actualiza la base de datos con la nueva contraseña.
Ejemplo 3: Restablecer contraseña mientras no se está autenticado (envía por correo electrónico un código de validación)
-
Restablece una contraseña proporcionando el ID de conexión y la respuesta para identificación para usuarios registrados que han olvidado la contraseña.Nota: Puesto que han olvidado la contraseña, deben conectarse como invitados:
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?logonId=jsmith&challengeAnswer=TheRedFoxFlies&URL=LogonForm
Si el usuario es un invitado, el mandato verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera un código de validación y se envía por correo electrónico el código al usuario.
- Introduce el código de validación, la nueva contraseña y la verificación de la nueva contraseña. Este paso debe realizarse dentro del periodo de tiempo que se especifica en
ResetPasswordGuestCmdImpl.getExpiryPeriod()
que toma el valor predeterminado de 30 minutos.https://myhostname/webapp/wcs/stores/servlet/ResetPassword?validationCode=289213&logonPassword=Just4Fun!&logonPasswordVerify=Just4Fun!&URL=LogonForm
Comportamiento
- Este mandato llama a los mandatos de tarea siguientes:
- GeneratePasswordCmd
- VerifyCredentialsCmd que llama a uno de los siguientes, según el valor de autenticación:
- UpdateCredentialsCmd que llama a uno de los siguientes, dependiendo del valor de autenticación:
- SendPasswordNotificationCmd
- ResetPasswordGuestCmd
- ResetPasswordGuestValidationCmd
- ResetPasswordGuestValidatePersistentCodeCmd
- ResetPasswordRegisterCmd
- AuthenticationPolicyCmd
- El mandato comprueba los parámetros necesarios. Si faltan parámetros o no son válidos, establece una de las tareas de error con los códigos de error apropiados.
- Si el usuario registrado está conectado como cliente invitado, verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera una contraseña arbitraria, se actualiza la base de datos y se envía por correo electrónico la contraseña al cliente (identificado por el valor del parámetro logonId).Nota: Opcionalmente, en lugar de ello se puede configurar el mandato para enviar por correo electrónico un código de validación. Entonces el usuario especificará el código de validación junto con una nueva contraseña para actualizar su contraseña.
- Si el usuario es un cliente registrado, o un administrador, y está conectado actualmente, verifica que la antigua contraseña sea correcta y que la nueva contraseña coincida con la contraseña verificada. También verifica que la contraseña cumple con los requisitos definidos por la política de contraseñas de este usuario. Si se satisfacen todas las condiciones, actualiza la base de datos con la nueva contraseña.
- Cuando el mandato se completa satisfactoriamente, llama al URL especificado.
- Los usuarios que hayan recibido una contraseña generada aleatoriamente mediante el mandato ResetPassword y se autentifiquen en la base de datos de HCL Commerce, tendrán que cambiar la contraseña después de la primera conexión por esta contraseña nueva.
Condiciones de excepción
Al producirse una condición de error, si especifica un URL de error en el parámetro reLogonURL, el mandato ResetPassword se redirige a ese URL y se coloca un código de error en la petición. De lo contrario, si no utiliza el parámetro reLogonURL, el mandato generará una excepción ECApplicationException y redirigirá a una vista de error que dependerá de la identidad del usuario. Puede obtener el código de error utilizando la clase ErrorDataBean.
Si un parámetro obligatorio se omite o es incorrecto, el mandato ResetPassword establece uno de los códigos de error siguientes, en función de la identidad del solicitante. Estos códigos de error se añaden al URL de error especificado si utiliza el parámetro reLogonURL:
Vista de error en base a la identidad:
- Usuario registrado
- ResetPasswordRegisterErrorView
- Usuario invitado
- ResetPasswordGuestErrorView
Condiciones de error y códigos de error asociados:
Solicitante del mandato | Condición de error y código de error asociado |
---|---|
Usuario invitado o conectado. |
Nota: En este caso, el mandato se redirigirá a la vista de error ResetPasswordView.
|
Invitado |
|
Usuario conectado |
|
El manejador de errores es ECConstants.EC_ERROR_CODE.