NodeJS

Comment autoriser les utilisateurs à l'aide de Google OAuth dans Node.js

Comment autoriser les utilisateurs à l'aide de Google OAuth dans Node.js

L'autorisation ouverte, également connue sous le nom d'OAuth, est un protocole utilisé pour autoriser un utilisateur sur votre site Web à l'aide d'un service tiers comme Google, Github, Facebook, etc. Le service tiers partage certaines données (nom, e-mail, photo de profil, etc.) avec votre site Web, puis autorise l'utilisateur en son nom sans gérer les mots de passe et les noms d'utilisateur de votre site Web, ce qui évite aux utilisateurs beaucoup de problèmes supplémentaires.

Comment fonctionne OAuth

Lorsqu'un utilisateur clique sur « Se connecter avec Google », l'utilisateur est redirigé vers la page de consentement de Google OAuth. Lorsque l'utilisateur accepte le consentement et authentifie son identité sur Google, Google contactera votre site Web en tant que service tiers et autorisera l'utilisateur en son nom et partagera certaines données avec votre site Web. De cette façon, l'utilisateur peut être autorisé sans gérer séparément les informations d'identification de votre site Web.

Implémentation de Google OAuth à l'aide de Node.js

Presque tous les langages de programmation fournissent différentes bibliothèques pour implémenter google oauth pour autoriser les utilisateurs. Nœud.js fournit les bibliothèques 'passport' et 'passport-google-oauth20' pour implémenter google oauth. Dans cet article, nous allons implémenter un protocole oauth pour autoriser les utilisateurs à utiliser node.js.

Créer un projet sur Google

La première étape pour implémenter Google OAuth consiste à créer un projet sur la console de développement google pour votre site Web. Ce projet est utilisé pour obtenir les clés API utilisées pour faire des demandes à Google pour une authentification ouverte. Allez sur le lien suivant et créez votre projet.

https://console.développeurs.Google.com

Configuration de Google Project

Après avoir créé le projet, accédez au projet et sélectionnez « Écran de consentement OAuth » dans le menu de gauche.

Cliquez sur le bouton 'créer' et fournissez tous les détails de votre projet. Cliquez sur « Enregistrer et continuer » pour continuer.

Fournissez maintenant la portée de votre projet. Les portées sont les types d'autorisations pour accéder aux données de l'utilisateur à partir d'un compte Google. Vous devez configurer les autorisations pour obtenir des données utilisateur spécifiques à partir de votre compte Google. Cliquez sur "Enregistrer et continuer."

Ajoutez maintenant les utilisateurs de test au projet si vous le souhaitez. Les utilisateurs de test sont les seuls utilisateurs autorisés à accéder à votre application Web en mode Test. Pour l'instant, nous n'entrerons aucun utilisateur test et cliquez sur « Enregistrer et continuer » pour passer à la page de résumé du projet.

Passez en revue votre projet sur la page de résumé et enregistrez la configuration. Nous allons maintenant générer des informations d'identification pour notre projet. Sélectionnez l'onglet "Identifiants" dans le menu de gauche et cliquez sur le bouton "Créer des identifiants" en haut pour générer OAuth 2.0 ID client.

Dans le menu déroulant, sélectionnez « ID client OAuth » et spécifiez le type d'application comme « Application Web » et le nom de votre application.

Sur la même page, nous devons fournir deux URI, les 'Authorized Javascript Origins' et les 'Authorized redirect URIs'. Les 'Origines javascript autorisées' sont l'origine HTTP de votre application Web, et elle ne peut avoir aucun chemin. Les « URI de redirection autorisés » sont l'URI exact avec un chemin vers lequel l'utilisateur sera redirigé après l'authentification Google.

Après avoir entré toutes les entrées requises, cliquez sur « Créer » pour créer des informations d'identification OAuth.

Nœud initiateur.Projet js

Jusqu'à présent, nous avons créé un projet google pour autoriser les utilisateurs de notre application à l'aide de google. Nous allons maintenant lancer le nœud.projet js pour implémenter oauth. Créez un répertoire nommé 'auth' et lancez le projet express.

[email protégé] : ~$ mkdir auth
[email protected]:~$ cd auth
[email protégé] :~$ npm init -y

Installation des packages npm requis

Pour mettre en œuvre Google OAuth à l'aide d'un nœud.js, nous devons installer des packages npm. Nous utiliserons 'passport', 'express', 'path' et 'passport-google-oauth20'. Installez ces packages à l'aide de npm.

[email protected] :~$ npm install express passeport passeport-google-oauth20 chemin

Nœud d'écriture.code js

Tout d'abord, nous allons écrire deux pages Web html simples, celle avec un bouton, et autoriser l'utilisateur lorsqu'il clique sur le bouton. La deuxième page sera autorisée, et l'utilisateur sera redirigé vers la page autorisée après autorisation. Créer un fichier 'public/index.html'.



OAuth


Autoriser ici

Créez maintenant un fichier 'public/success.html' avec le contenu suivant.



OAuth


Autorisé



Après avoir créé des pages Web, nous allons maintenant écrire du code pour autoriser les utilisateurs à utiliser google oauth. Créer un fichier 'index.js'.

// importation des packages requis
const express = require('express');
const passeport = require('passeport');
const chemin = require('chemin');
const GoogleStrategy = require('passport-google-oauth20').Stratégie;
const app = express();
// définition des paramètres
// l'identifiant client est le paramètre que nous obtiendrons de la console développeur google
CLIENT_ID = "xxxxxxx" ;
// le secret client sera également extrait de la console développeur de google
CLIENT_SECRET="xxxxx" ;
// l'utilisateur sera redirigé vers le CALLBACK_URL après autorisation
CALLBACK_URL="http://localhost:8000/authorized" ;
// le numéro de port doit être le même que celui défini dans la console développeur
PORT=8000 ;
// configuration du middleware de passeport
application.utiliser (passeport.initialiser());
application.utiliser (passeport.session());
passeport.serializeUser( function(id, done)
done(null, id);
);
passeport.deserializeUser( function(id, done)
done(null, id);
);
// le middleware suivant s'exécutera à chaque fois que le passeport. La méthode Authenticate est appelée et renvoie différents paramètres définis dans la portée.
passeport.use(new GoogleStrategy(
ID client : CLIENT_ID,
clientSecret : CLIENT_SECRET,
URL de rappel : CALLBACK_URL
,
fonction async (accessToken, refreshToken, profile, email, cb)
return cb(null, email.identifiant);

));
// servant la page d'accueil de l'application
application.get('/', (req, res) =>

res.sendFile(chemin.join(__dirname + '/public/index.html'));
);
// servir la page de réussite pour l'application
application.get('/success', (req, res) =>

res.sendFile(chemin.join(__dirname + '/public/success.html'));
);
// l'utilisateur sera redirigé vers la page d'authentification google chaque fois qu'il atteint la route '/google/auth'.
application.get('/google/auth',
passeport.authentifier('google', scope : ['profile', 'email'])
);
// la redirection d'échec d'authentification est définie dans la route suivante
application.get('/autorisé',
passeport.authentifier('google', failureRedirect: '/'),
(req, res) =>

res.redirect('/succès');

);
// serveur en cours d'exécution
application.écouter(PORT, () =>

console.log ("Le serveur s'exécute sur le port " + PORT)
)

Tester Google OAuth

Maintenant, notre application est prête et nous pouvons tester si elle autorise les utilisateurs à l'aide de google oauth. Allez dans le répertoire racine et lancez l'application.

[email protected] :~$ index de nœud.js

Entrez maintenant l'url de votre application dans le navigateur.

http://localhost:8000

Il affiche la page d'accueil avec une balise d'ancrage.

Lorsque nous cliquons sur 'Autoriser ici', cela redirige vers la page google oauth.

Le nom de votre application 'Test' s'affiche sur la page d'authentification Google. Lorsque vous autorisez votre compte, il vous mènera à la page autorisée.

Conclusion

La gestion des noms d'utilisateur et des mots de passe pour différentes applications Web n'est pas une tâche heureuse pour les utilisateurs. De nombreux utilisateurs quittent votre application Web sans enregistrer leur compte simplement parce qu'ils ne souhaitent pas gérer les informations d'identification. Le processus d'autorisation sur votre application Web ou votre site Web peut être simplifié en utilisant des services tiers comme Google, Facebook, etc. Ces services autorisent les utilisateurs en leur nom, et l'utilisateur n'a pas besoin de gérer les informations d'identification séparément. Dans cet article, nous avons implémenté le protocole google oauth pour autoriser les utilisateurs à utiliser Node.js.

Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...