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.

Captura11
Captura12

Posteriormente, crearemos un usuario IAM en ese mismo grupo, y descargaremos el CSV con las credenciales de acceso.

Captura13
Captura14
Captura15

Dentro de nuestro proyecto MVC5

Instalaremos los siguientes NuGets en nuestro proyecto MVC5.

Captura16

Crearemos una carpeta Services, donde crearemos una clase ServiceAWSSNS, e introduciremos el siguiente contenido.

Captura1

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.

Captura20

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.

Captura21

Por último, en Startup.cs, inyectamos el servicio.

Captura23

Si hemos seguido todo este post, y ejecutamos nuestro MVC5, debería de funcionar correctamente.

Resultado

Captura30
Captura32
Captura33
Captura34

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:

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.