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.