Node.js 使用Passport进行Google身份验证

Node.js 使用Passport进行Google身份验证

以下方法介绍了如何在Node.js中使用Passport进行Google身份验证。身份验证基本上是在向用户授予访问网站或服务之前对用户进行验证。使用Google帐户进行身份验证称为Google身份验证。我们可以使用Google在其开发者门户上提供的OAuth API进行Google身份验证。

创建Node项目并安装模块:

步骤1: 使用以下命令创建Node项目。

npm init

Node.js 使用Passport进行Google身份验证

按住回车键并在终端行中相应地输入“是/否”。

步骤2: 安装所需模块。

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

Node.js 使用Passport进行Google身份验证

步骤3: 创建两个文件 index.jspassport.js

项目结构:

Node.js 使用Passport进行Google身份验证

步骤4: 创建基本服务器。

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"); 
});

输出:

Node.js 使用Passport进行Google身份验证

步骤5: 现在前往 google平台 并生成您的凭据。

Node.js 使用Passport进行Google身份验证

步骤6: 创建登录功能。

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"); 
});

运行应用程序的步骤:

使用以下命令从项目的根目录运行应用程序:

node index.js

输出:

Node.js 使用Passport进行Google身份验证

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程