Comment utiliser AWS Cognito avec Node.js

AWS Cognito est un puissant service de gestion des identités et des utilisateurs fourni par Amazon Web Services. Il vous permet d’ajouter facilement des fonctionnalités d’inscription et de connexion à vos applications, et fournit également des fonctionnalités telles que l’authentification, l’autorisation et le contrôle d’accès sécurisé. Dans ce guide, nous vous expliquerons les étapes pour intégrer AWS Cognito avec une application Node.js.

Configurer AWS Cognito

  1. Créez un compte AWS si vous n’en avez pas déjà un.
  2. Accédez à la console de gestion AWS et recherchez « Cognito » dans la barre de recherche des services.
  3. Cliquez sur « Manage User Pools » pour créer un nouveau groupe d’utilisateurs.
  4. Suivez les instructions pour configurer les paramètres de votre groupe d’utilisateurs, tels que le nom du groupe, les politiques de mot de passe et la vérification par e-mail.
  5. Une fois votre groupe d’utilisateurs créé, notez l’identifiant du groupe et l’identifiant du client, car nous en aurons besoin dans les étapes suivantes.

Installer les dépendances

  1. Ouvrez votre projet Node.js dans un terminal ou une invite de commandes.
  2. Installez le SDK AWS pour JavaScript et le package aws-sdk en exécutant la commande suivante :
Terminal window
npm install aws-sdk
  1. Installez le package jsonwebtoken pour la gestion des tokens JWT :
Terminal window
npm install jsonwebtoken

Implémenter l’inscription des utilisateurs

  1. Importez les modules nécessaires dans votre application Node.js :
const AWS = require('aws-sdk')
const jwt = require('jsonwebtoken')
  1. Configurez le SDK AWS avec vos identifiants et la région AWS souhaitée :
AWS.config.update({
region: 'us-west-2',
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
})
  1. Créez un nouvel objet CognitoIdentityServiceProvider :
const cognito = new AWS.CognitoIdentityServiceProvider()
  1. Implémentez la fonctionnalité d’inscription des utilisateurs avec la méthode signUp :
const signUp = (username, password, email) => {
const params = {
ClientId: 'YOUR_CLIENT_ID',
Password: password,
Username: username,
UserAttributes: [
{
Name: 'email',
Value: email,
},
],
}
return new Promise((resolve, reject) => {
cognito.signUp(params, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
  1. Appelez la fonction signUp avec les identifiants de l’utilisateur souhaité :
signUp('john_doe', 'password123', 'john.doe@example.com')
.then((data) => {
console.log('User sign-up successful:', data)
})
.catch((err) => {
console.error('User sign-up failed:', err)
})

Implémenter la connexion des utilisateurs

  1. Ajoutez le code suivant à votre application Node.js pour implémenter la fonctionnalité de connexion des utilisateurs :
const signIn = (username, password) => {
const params = {
AuthFlow: 'USER_PASSWORD_AUTH',
ClientId: 'YOUR_CLIENT_ID',
AuthParameters: {
USERNAME: username,
PASSWORD: password,
},
}
return new Promise((resolve, reject) => {
cognito.initiateAuth(params, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
  1. Appelez la fonction signIn avec les identifiants de l’utilisateur :
signIn('john_doe', 'password123')
.then((data) => {
console.log('User sign-in successful:', data)
})
.catch((err) => {
console.error('User sign-in failed:', err)
})

Ce sont les étapes de base pour intégrer AWS Cognito avec une application Node.js. N’oubliez pas de gérer les erreurs et d’implémenter les fonctionnalités supplémentaires selon vos besoins. Pour des fonctionnalités plus avancées, telles que l’authentification des utilisateurs avec des tokens JWT, consultez la documentation AWS Cognito pour plus d’informations.