Amazon Cognito 사용자 풀 API에서 ‘Invalid Refresh Token’ 오류를 해결하고 싶습니다.
해결 방법
새로 고침 토큰과 다른 앱 클라이언트 ID를 사용했음
사용자가 AdminInitiateAuth API, InitiateAuth API 또는 호스팅된 UI를 사용하여 인증하면 앱 클라이언트 ID가 ClientId 파라미터로 사용됩니다. 새로 고침 토큰을 발급한 ID와 다른 앱 클라이언트 ID를 사용하는 경우 API는 ‘Invalid Refresh Token’ 오류를 반환합니다.
이 오류를 해결하려면 AdminInitiateAuth 또는 InitiateAuth API를 직접적으로 호출할 때 원래 새로 고침 토큰을 발급한 것과 동일한 앱 클라이언트 ID를 사용하십시오.
디바이스 추적이 활성화된 미확인 디바이스가 있음
사용자 풀에 대한 디바이스 추적을 활성화했지만 디바이스를 확인하지 않은 경우, 새 토큰을 받으려고 할 때 ‘Invalid Refresh Token’ 오류가 발생합니다.
이 오류를 해결하려면 ConfirmDevice API를 직접적으로 호출하여 디바이스를 확인하고 디바이스 추적을 시작하십시오. 그런 다음, 새로 고침 토큰을 사용하여 새 액세스 및 ID 토큰을 가져옵니다. 자세한 내용은 기억된 디바이스 설정을 참조하십시오.
인증 파라미터에 디바이스 키가 없음
사용자 풀에 대한 디바이스 추적을 활성화하면 Amazon Cognito는 인증 성공 후 고유한 디바이스 키를 반환합니다. 새로 고침 토큰을 사용하여 새 토큰을 가져오려면 다음 인증 요청에 디바이스 키를 포함하십시오.
{ "AuthFlow": "REFRESH_TOKEN_AUTH",
"AuthParameters": {
"REFRESH_TOKEN": "example_refresh_token",
"SECRET_HASH": "example_secret_hash",
"DEVICE_KEY": "example_device_key"
}
}
참고: example_refresh_token, example_secret_hash 및 example_device_key를 사용자 고유의 값으로 바꾸십시오.
앱 클라이언트가 클라이언트 보안 암호를 사용하는 경우 AuthParameters에 SECRET_HASH 파라미터를 포함하십시오. 이렇게 하면 요청이 애플리케이션에서 발생함을 확인할 수 있습니다.
디바이스 키가 AuthParameters 중 하나로 전달되지 않으면 ‘Invalid Refresh Token’ 오류가 발생합니다. 오류를 해결하려면 AdminInitiateAuth 또는 InitiateAuth API에 디바이스 키를 AuthParameters로 포함해야 합니다.
디바이스 추적이 활성화되어 있지만 새로 고침 토큰에 인증 흐름이 있음
USER_PASSWORD_AUTH 흐름은 디바이스 추적을 활성화하면 토큰 새로 고침을 지원하지 않습니다. 사용자 풀 디바이스 추적 기능은 USER_SRP_AUTH 인증 흐름에서만 사용할 수 있습니다.
새로 고침 토큰을 사용할 때 새 토큰을 가져오려고 하면 ‘Invalid Refresh Token’ 오류가 발생합니다. 이 오류를 해결하려면 사용자 디바이스를 추적한 다음, USER_SRP_AUTH 인증 흐름을 사용하십시오.
관련 정보
새로 고침 토큰
Amazon Cognito 사용자 풀 인증
앱 클라이언트를 사용한 애플리케이션별 설정
Amazon Cognito 사용자 풀을 사용하여 디바이스 추적 및 기억