Autenticación de Google usando Passport en Node.js

El siguiente enfoque cubre cómo autenticarse con google usando pasaporte en nodeJs. La autenticación es básicamente la verificación de los usuarios antes de otorgarles acceso al sitio web o a los servicios. La autenticación que se realiza mediante una cuenta de Google se denomina Autenticación de Google. Podemos realizar la autenticación de Google mediante la API de OAuth que proporciona Google en su portal para desarrolladores.

Creación de un proyecto de Node e instalación del módulo:

Paso 1: crear un proyecto de Node con el siguiente comando.

npm init

Siga presionando enter e ingrese «sí/no» según corresponda en la línea final.

Paso 2: Instalación de los módulos necesarios.

npm install express passport passport-google-oauth2 cookie-session

Paso 3: Creación de dos archivos index.js y pasaporte.js

Estructura del proyecto:

Paso 4: Crear un servidor básico.

index.js

const express = require('express');
const app = express();
  
app.get('/' , (req , res) => {
    res.send("<h1>GeeksForGeeks</h1>");
});
  
app.listen(4000 , () => {
    console.log("Server running on port 4000");
});

Producción:

Paso 5: Ahora ve a la plataforma de Google y genera tus credenciales.

Paso 6: crear la funcionalidad de inicio de sesión.

passport.js

const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth2').Strategy;
  
passport.serializeUser((user , done) => {
    done(null , user);
})
passport.deserializeUser(function(user, done) {
    done(null, user);
});
  
passport.use(new GoogleStrategy({
    clientID:"YOUR ID", // Your Credentials here.
    clientSecret:"YOUR SECRET", // Your Credentials here.
    callbackURL:"http://localhost:4000/auth/callback",
    passReqToCallback:true
  },
  function(request, accessToken, refreshToken, profile, done) {
    return done(null, profile);
  }
));

index.js

const express = require('express');
const app = express();
const passport = require('passport');
const cookieSession = require('cookie-session');
require('./passport');
  
app.use(cookieSession({
    name: 'google-auth-session',
    keys: ['key1', 'key2']
}));
app.use(passport.initialize());
app.use(passport.session());
    
  
app.get('/', (req, res) => {
    res.send("<button><a href='/auth'>Login With Google</a></button>")
});
  
// Auth 
app.get('/auth' , passport.authenticate('google', { scope:
    [ 'email', 'profile' ]
}));
  
// Auth Callback
app.get( '/auth/callback',
    passport.authenticate( 'google', {
        successRedirect: '/auth/callback/success',
        failureRedirect: '/auth/callback/failure'
}));
  
// Success 
app.get('/auth/callback/success' , (req , res) => {
    if(!req.user)
        res.redirect('/auth/callback/failure');
    res.send("Welcome " + req.user.email);
});
  
// failure
app.get('/auth/callback/failure' , (req , res) => {
    res.send("Error");
})
  
app.listen(4000 , () => {
    console.log("Server Running on port 4000");
});

Paso para ejecutar la aplicación: ejecute la aplicación utilizando el siguiente comando desde el directorio raíz del proyecto:

node index.js

Producción: 

Publicación traducida automáticamente

Artículo escrito por iamabhishekkalra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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