Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

343
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda