Come posso risolvere i problemi con l'attributo email_verified di un utente Amazon Cognito?

5 minuti di lettura
0

Desidero risolvere eventuali problemi relativi all'attributo email_verified per gli utenti di Amazon Cognito.

Breve descrizione

Un pool di utenti Amazon Cognito dispone di un set di attributi standard utilizzati per identificare i singoli utenti. L'attributo email_verified, che indica se l'indirizzo e-mail di un utente è stato verificato, può cambiare nelle seguenti situazioni:

Risoluzione

Per risolvere i problemi relativi all'attributo email_verified, segui i passaggi applicabili nel tuo caso specifico.

Importante: nei seguenti comandi di esempio dell'interfaccia della linea di comando AWS (AWS CLI), sostituisci tutte le istanze di stringhe di esempio con i valori in tuo possesso. (Ad esempio, sostituisci "example_access_token" con il valore del tuo token di accesso).

Verifica dopo un aggiornamento dell'indirizzo e-mail

Per verificare l'indirizzo e-mail dopo un aggiornamento utente:

1.    Affinché Amazon Cognito invii il codice di verifica a un indirizzo e-mail aggiornato,configura l'impostazione di verifica e-mail per il pool di utenti.

2.    Se necessario, aggiorna l'indirizzo e-mail chiamando l'API UpdateUserAttributes o l'API AdminUpdateUserAttributes.

Esempio di comando update-user-attributes:

aws cognito-idp update-user-attributes --access-token "example_access_token" --user-attributes Name="email",Value="example_new_email"

Esempio di comando admin-update-user-attributes:

aws cognito-idp admin-update-user-attributes --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_new_email"

Importante: l'API AdminUpdateUserAttributes può essere utilizzata anche per verificare automaticamente l'e-mail impostando l'attributo email_verified su True. Se l'indirizzo e-mail viene verificato automaticamente con l'API AdminUpdateUserAttributes, il passaggio successivo non è necessario. Il passaggio successivo è necessario quando si utilizza l'API UpdateUserAttributes.

3.    Controlla la tua nuova casella di posta elettronica per il codice di verifica.

4.    Chiama l'API VerifyUserAttribute. Specifica i parametri per AccessToken e AttributeName scegliendo "e-mail" e inserisci il codice di verifica ottenuto nel passaggio precedente.

Esempio di comando verify-user-attribute:

aws cognito-idp verify-user-attribute --access-token "example_access_token" --attribute-name "email" --code "example_verification_code"

Per verificare l'indirizzo e-mail dopo la scadenza del codice iniziale:

1.    Accedi all'applicazione con il tuo nome utente per recuperare il token di accesso.

2.    Chiama l'API GetUserAttributeVerificationCode. Imposta il parametro AttributeName su "e-mail".

Esempio di comando get-user-attribute-verification-code:

aws cognito-idp get-user-attribute-verification-code --access-token "example_access_token" --attribute-name "email"

3.    Chiama l'API VerifyUserAttribute. Specifica i parametri per AccessToken e AttributeName scegliendo "e-mail". Inserisci il codice di verifica ottenuto nel passaggio precedente.

Conferma di un nuovo utente con un indirizzo e-mail duplicato

Per consentire la conferma di un nuovo utente con un indirizzo e-mail duplicato:

1.    Se necessario, chiama l'API SignUp per registrare un utente con un indirizzo e-mail configurato.

Esempio di comando sign-up:

aws cognito-idp sign-up --client-id "example_client_id" --username "example_username" --password "example_password" --user-attributes Name="email",Value="example_user_email"

2.    Chiama l'API ConfirmSignUp con il parametro ForceAliasCreation impostato su True.

Esempio di comando confirm-sign-up:

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --force-alias-creation

Per negare la conferma di un nuovo utente con un indirizzo e-mail duplicato dopo la registrazione:

1.    Chiama l'API ConfirmSignUp con il parametro ForceAliasCreation impostato su False.

Nota: per impostazione predefinita, ForceAliasCreation è impostato su False. Pertanto, non è necessario passarlo come parametro nella richiesta.

Esempio di comando deny-sign-up:

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --no-force-alias-creation

2.    Impostando il parametro ForceAliasCreation su False, l'API restituirà il seguente errore:

An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.

Creazione di un nuovo utente amministratore con un indirizzo e-mail duplicato

Per creare un nuovo utente amministratore con indirizzo e-mail duplicato:

1.    Chiama l'API AdminCreateUser con un indirizzo e-mail configurato, con l'attributo email_verified impostato su True e il parametro ForceAliasCreation impostato su True.

Esempio di comando admin-create-user:

aws cognito-idp admin-create-user --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_user_email" Name="email_verified",Value="True" --force-alias-creation

Esegui la mappatura dell'attributo email_verified a un gestore dell'identità digitale (IdP) di terze parti

Per mantenere verificato l'attributo email_verified dopo la federazione:

1.    Nella console Amazon Cognito, esegui la mappatura dell'attributo IdP per lo stato di verifica all'attributo email_verified.

Nota: la maggior parte dei provider OpenID Connect (OIDC) include l'attributo email_verified.


Informazioni correlate

Verifica degli aggiornamenti agli indirizzi e-mail e ai numeri di telefono

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa