Quiero solucionar el error «Invalid Refresh Token» en la API de mi grupo de usuarios de Amazon Cognito.
Resolución
Has usado un ID de cliente de la aplicación diferente al del token de actualización
Cuando un usuario se autentica con la API AdminInitiateAuth, la API InitiateAuth o la IU alojada, el ID de cliente de la aplicación sirve como parámetro ClientId. Si usas un ID de cliente de aplicación diferente al que ha emitido el token de actualización, la API mostrará el error «Invalid Refresh Token».
Para resolver este error, usa el mismo ID de cliente de la aplicación que emitió el token de actualización original cuando llames a la API AdminInitiateAuth o InitiateAuth.
Tienes un dispositivo no confirmado con el seguimiento de dispositivos activado
Si activas el seguimiento de dispositivos para un grupo de usuarios pero no confirmas el dispositivo, recibirás el error «Invalid Refresh Token» cuando intentes obtener nuevos tokens.
Para resolver este error, llama a la API ConfirmDevice para confirmar el dispositivo e iniciar su seguimiento. A continuación, usa el token de actualización para obtener nuevos tokens de acceso e ID. Para obtener más información, consulta Setting up remembered devices (Configuración de dispositivos recordados).
Te falta una clave de dispositivo en los parámetros de autenticación
Al activar el seguimiento del dispositivo para un grupo de usuarios, Amazon Cognito devuelve una clave de dispositivo única tras la autenticación correcta. Para obtener nuevos tokens con un token de actualización, incluye la clave del dispositivo en la siguiente solicitud de autenticación:
{ "AuthFlow": "REFRESH_TOKEN_AUTH",
"AuthParameters": {
"REFRESH_TOKEN": "example_refresh_token",
"SECRET_HASH": "example_secret_hash",
"DEVICE_KEY": "example_device_key"
}
}
Nota: Sustituye example_refresh_token, example_secret_hash y example_device_key por tus propios valores.
Si el cliente de la aplicación usa un secreto de cliente, incluye el parámetro SECRET_HASH en AuthParameters. Esto verifica que la solicitud proviene de tu aplicación.
Si la clave del dispositivo no se envía como uno de los valores de AuthParameters, recibirás el error «Invalid Refresh Token». Para resolver el error, asegúrate de incluir la clave del dispositivo como AuthParameters en la API AdminInitiateAuth o InitiateAuth.
Tienes activado el seguimiento de dispositivos, pero el token de actualización tiene un flujo de autenticación
El flujo USER_PASSWORD_AUTH no admite la actualización de tokens al activar el seguimiento de dispositivos. La característica de seguimiento de dispositivos del grupo de usuarios solo se puede usar con el flujo de autenticación USER_SRP_AUTH.
Si intentas obtener nuevos tokens cuando usas el token de actualización, recibirás el error «Invalid Refresh Token». Para resolver este error, haz un seguimiento de los dispositivos de los usuarios y, a continuación, utiliza el flujo de autenticación USER_SRP_AUTH.
Información relacionada
Refresh tokens (Tokens de actualización)
Authentication with Amazon Cognito user pools (Autenticación con grupos de usuarios de Amazon Cognito)
Application-specific settings with app clients (Configuración específica de la aplicación con clientes de aplicaciones)
Tracking and remembering devices using Amazon Cognito Your User Pools (Cómo rastrear y recordar dispositivos con tus grupos de usuarios de Amazon Cognito)