cognito aws amazon-web-services amazon-cognito

amazon web services - Error de AWS Cognito: ''identityPoolId'' no pudo cumplir la restricción



aws cognito authentication flow (1)

Soy nuevo Cognito. Estoy tratando de implementar AWS Cognito usando Lambda. Este es el tutorial que estoy siguiendo.

AmazonCognitoIdentityClient client = new AmazonCognitoIdentityClient(); GetOpenIdTokenForDeveloperIdentityRequest tokenRequest = new GetOpenIdTokenForDeveloperIdentityRequest(); tokenRequest.setIdentityPoolId("us-east-1_XXXXXXX");

Este es el identificador de grupo que estoy usando en setIdentityPoolId

Esta es la prueba JUnit

public class AuthenticateUser implements RequestHandler<Object, Object> { @Override public Object handleRequest(Object input, Context context) { AuthenticateUserResponse authenticateUserResponse = new AuthenticateUserResponse(); @SuppressWarnings("unchecked") LinkedHashMap inputHashMap = (LinkedHashMap)input; User user = authenticateUser(inputHashMap); return null; } public User authenticateUser(LinkedHashMap input){ User user = null; String userName = (String) input.get("userName"); String passwordHash = (String) input.get("passwordHash"); try { AmazonDynamoDBClient client = new AmazonDynamoDBClient(); client.setRegion(Region.getRegion(Regions.US_EAST_1)); DynamoDBMapper mapper = new DynamoDBMapper(client); user = mapper.load(User.class, userName); if(user != null){ System.out.println("user found"); if(user.getPasswordHash().equals(passwordHash)){ System.out.println("user password matched"); String openIdToken = getOpenIdToken(user.getUserId()); user.setOpenIdToken(openIdToken); return user; } else { System.out.println("password unmatched"); } } else { System.out.println("user not found"); } } catch (Exception e) { System.out.println("Error: " + e.toString()); } return user; }

Esta es la salida

user found user password matched

Pero recibo el siguiente error y, por lo tanto, la declaración de return user está fallando

1 validation error detected: Value ''us-east-1_XXXXXX'' at ''identityPoolId'' failed to satisfy constraint: Member must satisfy regular expression pattern: [/w-]+:[0-9a-f-]+ (Service: AmazonCognitoIdentity; Status Code: 400; Error Code: ValidationException;


Está utilizando un id. De grupo de usuarios de Cognito como ID de grupo de identidades. Son dos cosas diferentes. Los identificadores del grupo de identidades tienen el formato us-east-1: XXXX-XXXXXX-XXXX-XXXX.

Para obtener un ID de grupo de identidades, debe usar las partes "Gestionar identidades federadas" de la consola Cognito, no la sección "Administrar grupos de usuarios". Espero que esto ayude.