Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

342
Vistas
Cómo usar Amazon Cognito sin Amplify

Ahora mismo estoy sumergiéndome en Cognito. La configuración de AWS ha sido bastante sencilla y sencilla.

Tenemos una variedad de aplicaciones, aplicaciones web y servicios y nos gustaría que hicieran uso del servicio Cognito. Tengo experiencia en configuraciones similares con Auth0, pero debido a que hemos estado aprovechando varios servicios web de Amazon, realmente tiene sentido usar Cognito también.

Dondequiera que miro, cada guía eventualmente hace referencia a la biblioteca y cli del lado del cliente de Amplify. Tenemos aplicaciones y servicios existentes, y realmente no queremos cambiar las herramientas ni importar nada innecesario para agregar volumen y complejidad. ¿Hay alguna forma de usar el servicio Cognito sin las bibliotecas de Amplify? ¿Existe una biblioteca de cliente liviana solo de Cognito para interactuar con el flujo de autenticación y autorización del servicio de Cognito?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Como mencionó @oieduardorabelo, simplemente puede instalar 'amazon-cognito-identity-js' donde también puede encontrar ejemplos bien hechos en npm .

Aquí está mi código de prueba para entender fácilmente esta lib. Ya debe haber creado la infraestructura en AWS (userPool, userClient y agregar un nuevo usuario para probar el inicio de sesión; en mi caso, el usuario tiene que cambiar la contraseña en el primer inicio de sesión, así que agregué este caso de uso en mi secuencia de comandos):

 import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js'; var authenticationData = { Username: 'email', Password: 'password', }; var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData); var poolData = { UserPoolId: 'us-east-1_userpoolid', ClientId: '26pjexamplejpkvt' }; var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData); var cognitoUser = userPool.getCurrentUser(); console.log(cognitoUser); if (!cognitoUser) { var userData = { Username: authenticationData.Username, Pool: userPool }; var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData); cognitoUser.authenticateUser(authenticationDetails, { onSuccess: function (result) { var accessToken = result.getAccessToken().getJwtToken(); var idToken = result.idToken.jwtToken; console.log('Success', accessToken, idToken); }, newPasswordRequired: function (userAttributes, requiredAttributes) { delete userAttributes.email_verified; cognitoUser.completeNewPasswordChallenge('DemoPassword1!', userAttributes, { onSuccess: (data) => { console.log(data); }, onFailure: function (err) { alert(err); } }); }, onFailure: function (err) { alert(err); }, }); }

Si alguien está interesado en configurar este proyecto de prueba desde cero, ejecute:

 npm init -y npm i -D webpack webpack-cli npm i amazon-cognito-identity-js

en webpack.config.js:

 var path = require('path'); module.exports = { entry: './src/app.js', mode: 'development', output: { path: path.resolve(__dirname, "dist"), filename: 'main.js', } }

Cree un nuevo archivo en ./src/app.js donde agregue el código anterior de amazonCognitoIdentity con la referencia de información de AWS correcta y cree ./dist/index.html con:

 ... <body> <script src="main.js"></script> </body>

en package.json agregue el script "reloj":

 ... "scripts": { "watch": "webpack --watch", }

Finalmente ejecutarlo:

 npm run watch

y abra index.html directamente en el navegador con la consola de desarrollo también.

Esperemos que sea útil para alguien.

over 4 years ago · Santiago Trujillo Denunciar

0

Escribí un artículo hace un par de años explicando cómo hacer esto.

El artículo habla de Amplify pero, como se mencionó en otra respuesta, es más un término general, en el artículo usamos principalmente componentes de interfaz de usuario proporcionados por el proyecto Amplify.

puede encontrarlo aquí: https://medium.com/@mim3dot/aws-amplify-cognito-part-2-ui-components-935876fabad3

over 4 years ago · Santiago Trujillo Denunciar

0

Actualización 03 Dic 2021

Después de re:Invent 2021, "Amplify Admin UI" pasó a llamarse "Amplify Studio". Ahora con poderes extra:

  • traduce automáticamente los diseños hechos en Figma al código del componente React UI legible por humanos

https://aws.amazon.com/blogs/mobile/aws-amplify-studio-figma-to-fullstack-react-app-with-minimal-programming/

===============

Respuesta Original

Para empezar, quiero aclarar que "Amplificar" es un término general para varias cosas. Tenemos:

  1. Amplificar bibliotecas (UI/JS)
  2. Amplify CLI (para crear aplicaciones nativas de la nube)
  3. Amplify Console (ci/cd y alojamiento para aplicaciones web completas)
  4. Amplify Admin UI (UI para crear y configurar aplicaciones web completas)

Puede consultar la página de inicio para obtener más aclaraciones: https://docs.amplify.aws/

¿Existe una biblioteca de cliente liviana solo de Cognito para interactuar con el flujo de autenticación y autorización del servicio de Cognito?

Detrás de escena, Amplify utiliza la biblioteca amazon-cognito-identity-js para interactuar con Amazon Cognito. Puede instalarlo directamente a través npm install amazon-cognito-identity-js .

El código fuente se ha movido al repositorio de Amplify Libraries (por ejemplo, amplify-js) . Una vez más, forma parte del paraguas "Amplify" bajo la primera categoría "Amplify Libraries".

¿Hay alguna forma de usar el servicio Cognito sin las bibliotecas de Amplify?

Otro enfoque que puede hacer es usar Amazon Cognito como un servidor OAuth. Cuando crea un dominio de interfaz de usuario alojado de Amazon Cognito , le proporciona un servidor de autorización compatible con OAuth 2.0.

Puede crear su propia API/Backend para puntos finales de registro/inicio de sesión e intercambiar tokens/credenciales con el servidor OAuth de Amazon Cognito sin utilizar aws-sdk ni ninguna biblioteca de dependencia de terceros.

Escribí un ejemplo de tutorial, cómo configurar su grupo de usuarios, puntos finales con los que necesita hablar usando Node.js, puede encontrarlo aquí: https://github.com/oieduardorabelo/node-amazon-cognito-oauth

Puedes seguir la misma idea para cualquier otro idioma.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda