Cómo integrar Cognito con el inicio de sesión social

( Ryan Bui) (16 de diciembre de 2020)

por Ryan Bui, desarrollador de Javascript

Si desea integrar manualmente el inicio de sesión social con Cognito para su aplicación, he venido al lugar correcto! No pude integrar el inicio de sesión social con lo que ofrece Cognito. Esto se debió a que el front-end no se pudo integrar fácilmente con los grupos de usuarios de Amplify o Cognito debido al uso de Flutter. Flutter es actualmente demasiado joven para integrarse con esos servicios.

Tampoco quería crear un grupo de identidades para otorgar credenciales temporales de AWS al front-end. Para resolver este problema, habilitamos un punto final / auth que se registrará / iniciará sesión en Cognito mediante programación. Los usuarios, a su vez, obtendrán tokens de autenticación.

Los usuarios deben enviar sus propios tokens sociales desde Google, Facebook o Apple. La validación de esos tokens se realizará desde el back-end.

Registrarse

Lo que necesitamos es usar la biblioteca «CognitoIdentityServiceProvider» y proporcionar las credenciales necesarias y los atributos que queremos asignar al usuario (correo electrónico, nombre, etc.). Esos atributos deben ser obligatorios cuando se crea el grupo (ejemplo a continuación).

A cambio, necesitamos el ID de usuario que acabamos de crear.

Iniciar sesión

Al iniciar sesión, debemos proporcionar el nombre de usuario y la contraseña. Si lo desea, puede iniciar sesión utilizando solo el correo electrónico. cuando tiene éxito, necesitamos el idToken que se utilizará más adelante al autorizar las llamadas de los usuarios a nuestra API.

Autorizar solicitudes entrantes

Hay dos formas de configurar autorizadores. Si lo hacemos manualmente, tenemos que abrir la consola de AWS y dirigirnos al servicio API Gateway y crear un autorizador en nuestra API.

En el siguiente paso, asigne un nombre al autorizador y seleccione el grupo de usuarios de Cognito que desee. Seleccione un método en el que desee utilizar un autorizador y haga clic en Solicitud de método para vincular este método al autorizador.

Primero, en autorización, seleccione el autorizador. Para los ámbitos de OAuth, seleccione «NINGUNO» para esperar tokens de ID. Si desea utilizar tokens de acceso con ámbitos, puede seguir la documentación en AWS .

Así que eso es todo lo que necesita hacer para el manual ¡configuración! Si desea automatizarlo sin servidor, así es como puede hacerlo:

Aquí solo debe proporcionar el ARN del grupo de usuarios. No queremos almacenar tokens en caché, por eso usamos resultTtlInSeconds: 0 . Como fuente de identidad, ponga la ruta al encabezado de autorización.

Ahora el consumidor de esta API solo necesita pasar el token de ID de Cognito en el encabezado de autorización.

Un resumen rápido…

Cognito no se integra bien con Flutter. Usamos el AWS SDK para registrarse e iniciar sesión. Al hacerlo, podemos generar tokens que le devolveremos al cliente. Esos tokens se utilizan para validar contra los autorizadores en la puerta de enlace API.

Un agradecimiento especial a por ser coautor de este artículo. Consulte sus tutoriales sobre: ​​
(Cómo configurar AWS) en la ruta 53 & (Cómo proxy de un sitio web estático de S3)

Ryan es un desarrollador de Javascript que ha trabajado de cerca con TDD y BDD. Le gusta jugar videojuegos y tocar la guitarra.

TribalScale es una empresa de innovación global que ayuda a las empresas adaptarse y prosperar en la era digital. Transformamos equipos y procesos, creamos los mejores productos digitales de su clase y creamos startups disruptivas. Obtenga más información sobre nosotros en nuestro sitio web . Conéctese con nosotros en Twitter , LinkedIn & Facebook !

Deja una respuesta

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