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

AWS Cognito Verify con PHP

Publicado el October 26, 2020

Tiempo de lectura: 6 minutos

Gestionar los usuarios correctamente es un trabajo duro. Permitir que los usuarios se registren por sí mismos y verificar su identidad puede ser difícil. Sin embargo, el uso de Amazon Cognito y la Verify API de Vonage ayudan a hacerlo un poco más fácil haciendo el trabajo pesado.

Con algunos formularios web, Vonage SDKy SDK DE AWSpuedes crear un sistema estándar de administración de usuarios que permita a un usuario registrarse, actualizar sus credenciales, validar su identidad e iniciar sesión. Utilizarás el código de verify-aws-cognito-php code repo.

NOTA: Para fines educativos, el código de ejemplo en el repositorio anterior se mantuvo simple. No he utilizado un marco, CSS o Javascript. Sin embargo, recomiendo el uso de un marco de apoyo, y el estilo CSS adecuado para una mejor aplicación observando la separación adecuada de las preocupaciones.

Requisitos previos

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.

Instrucciones de instalación

Clonar el archivo verify-aws-cognito-php de GitHub y navegue hasta el directorio recién creado para continuar.

Instalar dependencias

Este ejemplo requiere el uso de Composer para instalar dependencias y configurar el autoloader.

Suponiendo que tiene Composer instalado globalmenteejecute:

composer install

Configuración de AWS

Este ejemplo utiliza Amazon Cognito User Pools para alojar usuarios. Configuré un grupo de usuarios de la siguiente manera:

  • Navegue hasta el Panel de Amazon Cognito en la consola de AWS.

  • Seleccione Manage User Pools.

  • Crear un nuevo grupo de usuarios.

    • Asigne un nombre al grupo y haga clic en Step through settings

    • Seleccione Email address or phone number y elige Allow email addresses

    • Haga clic en Next step

    • Establezca la longitud mínima de la contraseña y la complejidad deseada.

    • Asegúrese de Allow users to sign themselves up

    • Haga clic en Next step

    • Deja el siguiente paso como está, para este ejemplo. Usaremos Vonage para 2FA

    • Haga clic en Next step

    • Seleccione FROM email address ARN en el menú desplegable. Esto supone que ya ha creado una identidad en Amazon Simple Email Service(SES)

    • Añada FROM email address como desee.

    • No modifique el resto de la página. Sin embargo, le recomiendo que elimine los puntos finales de los mensajes de correo electrónico. Así evitarás que el destinatario utilice por error el punto como parte de la contraseña temporal.

    • Haga clic en Next step

    • Omita la adición de etiquetas haciendo clic en Next step

    • Saltar dispositivos pulsando Next step

    • Haga clic en el enlace para Add an app client

    • Dar un nombre al cliente de la aplicación

    • Desmarque la casilla para Generate client secret

    • Marque el resto de casillas

    • Haga clic en Create app client

    • Haga clic en Next step

    • Saltar activadores pulsando Next step

    • Haga clic en Create pool

Actualizar el medio ambiente

Cambie el nombre del archivo .env.default a .env y actualice los valores según sea necesario:

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=

Todos los marcadores de posición señalados con <> en el ejemplo anterior. Actualice los demás según sea necesario.

Lanzamiento o despliegue

Pruebe la aplicación ejecutándola localmente con el servidor web incorporado PHP con el comando:

php -S localhost:8080

Para ver la página principal, vaya a http://localhost:8080 en un navegador web.

IMPORTANTE: Aunque esta aplicación funciona, está destinada a fines educativos y no está preparada para su uso público tal cual.

Funcionalidad

El flujo de la aplicación es el siguiente:

  • En la página principal, haga clic en Login o Register.

    • Tras el registro (user_register.php) el usuario es redirigido a una página obligatoria de cambio de contraseña. (login_reset.php), donde deberá utilizar la contraseña temporal que se le envió por correo electrónico.

    • Tras actualizar la contraseña temporal, el usuario es redirigido a la página de inicio de sesión. (login.php)

    • El inicio de sesión es donde un nuevo usuario, o un usuario existente puede iniciar sesión.

    • Después de iniciar sesión con éxito, el usuario es redirigido a la página de verificación 2FA. (login_verify.php) Aquí introduce el código de 6 dígitos enviado a su número de móvil.

    • Una vez verificada la 2FA, el usuario es redirigido a la página principal (index.php), donde verá que ya ha iniciado sesión y tiene la opción de cerrar la sesión. (logout.php)

Próximos pasos

Si tiene alguna pregunta o se encuentra con problemas, puede ponerse en contacto con @VonageDev en Twitter o preguntar en la Comunidad Nexmo equipo de Slack. Buena suerte.

Compartir:

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

Adam es un desarrollador y consultor al que le gusta correr a toda velocidad, bloguear y ayudar a otros a domar la tecnología para conseguir cosas increíbles, con un deseo insaciable de servir de mentor y ayudar.