Autenticación sin Interacción con el Usuario
Es posible pedir la autenticación de determinado usuario al informar un id_token previamente emitido. Para tal, es necesario agregar dos pares key/value en la Query string de la solicitud (capítulo 4).
Parámetros Necesarios
id_token_hint
Debe contener el JWT que representa algún id_token previamente emitido.
&id_token_hint=<jwt_token>prompt
Debe poseer el valor none.
&prompt=noneEjemplo de Solicitud
{login-producao}/authorize?response_type=code&scope=openid profile&client_id=exampleclient&redirect_uri=https://ejemplo.com.br/callback&id_token_hint=qbcd.1234.xyz&prompt=noneComportamiento
Caso de Éxito
Si el usuario referido por la solicitud de autenticación posee sesión activa, la misma ocurrirá de forma automática. El usuario será redirigido a la redirect_uri con el código de autorización, sin necesidad de interacción.
Caso de Falla
Si el usuario no posee sesión activa, posee sesión expirada o la sesión activa no pertenece al usuario referido, el user_agent (navegador del usuario) será redirigido al URI de redirección informada en la solicitud de autenticación, con los parámetros informativos relativos al error observado.
Error Específico
Si usa id_token_hint sin definir prompt=none, recibirá el siguiente error:
error: "invalid_request"
error_description: "The use of the id_token_hint property requires the prompt value to be set as 'none'."Casos de Uso
Esta funcionalidad es útil para:
- Verificar si el usuario aún posee sesión activa
- Renovar tokens sin solicitar login nuevamente
- Implementar "recordarme" o sesiones persistentes
- Mejorar la experiencia del usuario evitando logins repetidos
Ejemplo de Implementación
function verificarSesionActiva(idTokenAnterior) {
const authUrl = `{login-producao}/authorize?response_type=code&scope=openid profile&client_id=exampleclient&redirect_uri=https://ejemplo.com.br/callback&id_token_hint=${idTokenAnterior}&prompt=none`;
window.location.href = authUrl;
}En el callback, debe verificar si recibió un código (éxito) o un error (sesión no activa).
