
Compartir:
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.
AWS Cognito Verify con PHP
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
PHP 7.4 (actualización
serverless.ymlpara otras versiones)Composer instalado globalmente
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:
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 settingsSeleccione
Email address or phone numbery eligeAllow email addressesHaga clic en
Next stepEstablezca la longitud mínima de la contraseña y la complejidad deseada.
Asegúrese de
Allow users to sign themselves upHaga clic en
Next stepDeja el siguiente paso como está, para este ejemplo. Usaremos Vonage para 2FA
Haga clic en
Next stepSeleccione
FROM email address ARNen el menú desplegable. Esto supone que ya ha creado una identidad en Amazon Simple Email Service(SES)Añada
FROM email addresscomo 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 stepOmita la adición de etiquetas haciendo clic en
Next stepSaltar dispositivos pulsando
Next stepHaga clic en el enlace para
Add an app clientDar un nombre al cliente de la aplicación
Desmarque la casilla para
Generate client secretMarque el resto de casillas
Haga clic en
Create app clientHaga clic en
Next stepSaltar activadores pulsando
Next stepHaga 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:
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:
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
LoginoRegister.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.
