Implementar Amazon Simple Notification Service en MVC5
Bienvenidos al post de «Implementar Amazon Simple Notification Service en MVC5«, donde aprenderéis a implementar y utilizar AWSSNS para, por ejemplo, verificar un número móvil.
Requerimientos
Necesitaremos lo siguiente:
- Proyecto MVC5.
- NuGets de AWSSDK.Extensions.NETCore.Setup y AWSSDK.SimpleNotificationService.
- Grupo IAM con los permisos de SNSReadOnlyAccess, SNSRole y SNSFullAccess, y un usuario
Dentro de nuestra consola de AWS
Dentro de IAM, en la consola de AWS, crearemos un grupo y le añadiremos los siguientes permisos.
Posteriormente, crearemos un usuario IAM en ese mismo grupo, y descargaremos el CSV con las credenciales de acceso.
Dentro de nuestro proyecto MVC5
Instalaremos los siguientes NuGets en nuestro proyecto MVC5.
Crearemos una carpeta Services, donde crearemos una clase ServiceAWSSNS, e introduciremos el siguiente contenido.
Lo que estamos haciendo en el servicio es lo siguiente:
- Realizamos la inyección de IConfiguration (para poder recuperar las claves guardadas en appsettings.json).
- Creamos un método EnviarSNS, que recibirá un número móvil y un código.
- Recuperamos nuestro awsKeyId y awsKeySecret y lo guardamos como awsCredentials.
- Creamos un objeto cliente SNS, que recibe nuestras credenciales y la región desde la que mandaremos el SMS.
- Creamos un objeto de petición SNS, en el que guardamos el mensaje del SMS, el número móvil y unos atributos que identificaran el tipo de SMS.
- Por último, creamos un objeto de respuesta, el cual publica nuestra petición.
Una vez terminado nuestro servicio, vamos a crear nuestro controlador.
Lo que estamos haciendo en el controlador es lo siguiente:
- Creamos una vista SendSNS, es en la que generamos un código, mandamos nuestro número móvil y el código, guardamos en un TempData el código y redirigimos a la vista de verificación.
- Creamos una vista VerifySNS, es en la que mandamos el código del SMS, si el código es igual al código almacenado en el TempData, entonces nos dará por buena la verificación, en caso contrario, nos la dará como fallida.
Una vez terminado nuestro controlador, vamos a dirigirnos al appsettings.json y agregar las credenciales.
Por último, en Startup.cs, inyectamos el servicio.
Si hemos seguido todo este post, y ejecutamos nuestro MVC5, debería de funcionar correctamente.
Resultado
Autor: Rubén Pozuelo Martínez.
Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma.
Centro: Tajamar.
Año académico: 2021-2022.
Código / recursos utilizados / Otros datos de interés: