https://d226lax1qjow5r.cloudfront.net/blog/blogposts/aws-cognito-verify-with-php/Social_Amazon-Cognito_Verify_1200x627.png

AWS Cognito Verify avec PHP

Publié le October 26, 2020

Temps de lecture : 6 minutes

La gestion des utilisateurs dans les règles de l'art n'est pas une mince affaire. Permettre aux utilisateurs de s'enregistrer eux-mêmes et vérifier leur identité peut s'avérer difficile. Cependant, en utilisant Amazon Cognito et l Verify API de Vonage de Vonage permet de faciliter un peu les choses en faisant le gros du travail.

Avec quelques formulaires web, Vonage SDKde Vonage et le AWS SDKvous pouvez créer un système de gestion des utilisateurs standard permettant à un utilisateur de s'inscrire, de mettre à jour ses informations d'identification, de valider son identité et de se connecter. Vous utiliserez le code de la page Verify-aws-cognito-php .

NOTE : A des fins éducatives, l'exemple de code dans le repo ci-dessus est resté simple. Je n'ai pas utilisé de framework, de CSS ou de Javascript. Cependant, je recommande l'utilisation d'un framework supporté, et d'un style CSS approprié pour une meilleure application observant la bonne séparation des préoccupations.

Conditions préalables

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Instructions d'installation

Clonez le fichier Verify-aws-cognito-php depuis GitHub, et naviguez dans le répertoire nouvellement créé pour continuer.

Installer les dépendances

Cet exemple nécessite l'utilisation de Composer pour installer les dépendances et configurer l'autoloader.

En supposant que Composer est installé globalementexécutez :

composer install

Configuration d'AWS

Cet exemple utilise les pools d'utilisateurs Amazon Cognito pour conserver les utilisateurs. J'ai créé un pool d'utilisateurs comme suit :

  • Naviguer vers le Tableau de bord Amazon Cognito dans la console AWS.

  • Sélectionner Manage User Pools.

  • Créer un nouveau pool d'utilisateurs.

    • Donnez un nom au pool et cliquez sur Step through settings

    • Sélectionnez Email address or phone number et choisissez Allow email addresses

    • Cliquez sur Next step

    • Définir la longueur minimale du mot de passe et les paramètres de complexité souhaités

    • Veillez à Allow users to sign themselves up

    • Cliquez sur Next step

    • Laissez l'étape suivante telle quelle, pour cet exemple. Nous utiliserons Vonage pour le 2FA

    • Cliquez sur Next step

    • Sélectionnez un FROM email address ARN dans la liste déroulante. Cela suppose que vous avez déjà créé une identité dans Amazon Simple Email Service(SES)

    • Ajouter un FROM email address comme vous le souhaitez.

    • Ne modifiez pas le reste de cette page. Toutefois, je vous recommande de supprimer les points à la fin des messages électroniques. Cela permet d'éviter que le destinataire n'utilise par erreur le point comme élément du mot de passe temporaire.

    • Cliquez sur Next step

    • Sauter l'ajout de balises en cliquant sur Next step

    • Sauter des appareils en cliquant sur Next step

    • Cliquez sur le lien pour Add an app client

    • Donner un nom au client de l'application

    • Décocher la case pour Generate client secret

    • Vérifier les autres cases

    • Cliquez sur Create app client

    • Cliquez sur Next step

    • Sauter les déclencheurs en cliquant sur Next step

    • Cliquez sur Create pool

Mise à jour de l'environnement

Renommez le fichier .env.default en .env et mettez à jour les valeurs si nécessaire :

AWS_PROFILE=default AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_VERSION=latest AWS_REGION=us-east-1 AWS_CLIENT_ID= AWS_USERPOOL_ID= NEXMO_API_KEY= NEXMO_API_SECRET=

Tous les espaces réservés notés par <> dans l'exemple ci-dessus doivent être mis à jour. Mettez les autres à jour si nécessaire.

Lancer ou déployer

Testez l'application en l'exécutant localement avec le serveur web intégré PHP à l'aide de la commande :

php -S localhost:8080

Affichez la page d'atterrissage principale en allant sur http://localhost:8080 dans un navigateur web.

IMPORTANT : Bien que cette application fonctionne, elle est destinée à des fins éducatives et n'est pas prête à être utilisée par le public en l'état.

Fonctionnalité

Le déroulement de l'application est le suivant :

  • Depuis la page principale, cliquez sur Login ou Register.

    • Après l'enregistrement (user_register.php), l'utilisateur est redirigé vers une page de changement de mot de passe obligatoire. (login_reset.php) Il doit y utiliser le mot de passe temporaire qui lui a été envoyé par courrier électronique.

    • Après avoir mis à jour le mot de passe temporaire, l'utilisateur est redirigé vers la page de connexion. (login.php)

    • Le login est l'endroit où un nouvel utilisateur ou un utilisateur existant peut se connecter.

    • Après avoir réussi à se connecter, l'utilisateur est redirigé vers la page de vérification 2FA. (login_verify.php) Il y saisit le code à 6 chiffres envoyé à son numéro de téléphone portable.

    • Une fois la vérification 2FA réussie, l'utilisateur est redirigé vers la page principale (index.php) où il voit qu'il est maintenant connecté et qu'il a la possibilité de se déconnecter. (logout.php)

Prochaines étapes

Si vous avez des questions ou rencontrez des problèmes, vous pouvez contacter @VonageDev sur Twitter ou vous renseigner auprès de la Communauté Nexmo Slack de Nexmo. Nous vous souhaitons bonne chance.

Partager:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpAnciens de Vonage

Adam est un développeur et un consultant qui aime l'ultra-course, les blogs, et qui aide les autres à apprivoiser la technologie pour accomplir des choses étonnantes avec un désir insatiable de mentorat et d'aide.