verificación verificacion tutorial telefónica telefono identidad cognito aws amazon-web-services amazon-cognito

amazon-web-services - tutorial - verificacion de telefono aws



Cómo obtener los atributos de usuario(nombre de usuario, correo electrónico, etc.) mediante la identificación de identidad de cognito (5)

Tengo AWS Cognito Identity Pool que está configurado con Cognito User Pool como proveedor de autenticación.

Supongamos que tengo el ID de identidad de una identidad en el Cognito Identity Pool (por ejemplo, us-east-1: XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX) donde esta identidad tiene un inicio de sesión vinculado a un usuario en el Cognito User Pool.

Con la identificación de identidad, ¿cómo puedo obtener los detalles del usuario vinculado (correo electrónico, teléfono, nombre de usuario)?


AWS cognito-idp list-users tiene una opción de filtro que le permite filtrar según el atributo. ''sub'' es el atributo que coincide con el ID de identidad que está describiendo.

por ejemplo, en la línea de comando:

aws cognito-idp list-users --user-pool-id us-east-1_abcdFghjI --filter "sub=/":XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX/""

Esto también requiere el usuario-pool-id, que sospecho que tienes. Además, no tengo idea de cómo se implementa esto o de cómo funciona cuando se filtra un gran número de usuarios, pero tomo los atributos personalizados que no se pueden usar en los filtros como una pista de que hay alguna forma de indexación detrás de la cortina.


El token de ID que intercambia con el servicio de identidad federado de Cognito para obtener el ID de identidad y las credenciales ya tiene todos los atributos de usuario. No necesitas una llamada extra a ningún servicio.

Es un token JWT y puede usar cualquier biblioteca en el cliente para decodificar los valores. Puede leer esta guía para obtener más información sobre los tokens vendidos por los grupos de usuarios de Cognito.

Alternativamente, también puede usar el token de acceso para llamar a la API de GetUser, que devolverá toda la información del usuario.


Me enfrenté a un problema similar y después de mucho rascarme no pude encontrar la manera exacta de sacar los detalles. Mi caso de uso fue para obtener los detalles en la aplicación de Android. Después de mirar en su código de API de cliente AWSMobile. Encontré a continuación y está trabajando desde mí.

Log.i (TAG, "Detalles del usuario" + AWSMobileClient.getInstance (). GetUserAttributes (). ToString ());

Recomendación: intente utilizar AWSMobileclient en caso de que lo esté utilizando para el desarrollo de Android, ya que esta es una nueva biblioteca que se recomienda para el desarrollo.


Usa este código

GetDetailsHandler detailsHandler = new GetDetailsHandler() { @Override public void onSuccess(CognitoUserDetails cognitoUserDetails) { CognitoUserAttributes cognitoUserAttributes=cognitoUserDetails.getAttributes(); stringStringHashMap=new HashMap<>(); stringStringHashMap =cognitoUserAttributes.getAttributes(); userNumber=stringStringHashMap.get("phone_number"); e1.setText(userNumber); Log.d("Response"," Inside DEATILS HANDLER"); // Store details in the AppHandler AppHelper.setUserDetails(cognitoUserDetails); // Trusted devices? handleTrustedDevice(); // e1.setText(input.getText().toString()); } @Override public void onFailure(Exception exception) { closeWaitDialog(); showDialogMessage("Could not fetch user details!", AppHelper.formatException(exception), true); } }; private void getDetails() { AppHelper.getPool().getUser(username).getDetailsInBackground(detailsHandler); }


console.log(''username is '' + cognitoUser.getUsername());