NodeJS Passport Module : Simplifying NodeJS passport Authentication With Examle

Other Blogs

Blogs ❯❯ NodeJS

Image could not load

Nodejs passport Module

किसी भी application में authentication एक crucial part है APIs / web applications का। Authentication का मतलब है user identity को verify करना और ensure करना कि user वही है जो वो claim कर रहा है। Node.js में authentication को implement करने के लिए एक popular library है passport.

ये blog explain करेगा कि कैसे passport module को Node.js application में use करके authentication implement करते हैं।

NodeJS passport Module

passport एक middleware है Node.js के लिए, जो authentication को simple और modular बनाता है। ये multiple strategies को support करता है जैसे कि local authentication, OAuth, OpenID Connect, etc.

Features of Passport
  • Simple and Flexible : बहुत ही simple और flexible design, जो कि use करने में easy है।

  • Strategy-Based : Multiple authentication strategies को support करता है, जैसे Google, Facebook, Twitter, etc.

  • Middleware : Express applications के साथ easily integrate हो सकता है as middleware.

NodeJS passport Installation

पहले आपको passport और passport-local (या किसी specific strategy) को install करना होगा -

npm install passport passport-local express-session

Setting Up Passport with Express

हम एक basic Express application setup करेंगे और passport को integrate करेंगे with local strategy .

Step 1 : Create an Express Server

const express = require('express'); const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; const session = require('express-session'); const app = express(); // Middleware to parse JSON and URL-encoded data app.use(express.json()); app.use(express.urlencoded({ extended: true })); // Express session middleware app.use(session({ secret: 'secretKey', resave: false, saveUninitialized: false })); // Initialize passport and session app.use(passport.initialize()); app.use(passport.session()); // Dummy user data for demonstration const users = [ { id: 1, username: 'user1', password: 'pass1' }, { id: 2, username: 'user2', password: 'pass2' } ]; // Passport local strategy for authentication passport.use(new LocalStrategy( (username, password, done) => { const user = users.find(u => u.username === username && u.password === password); if (user) { return done(null, user); } else { return done(null, false, { message: 'Invalid credentials' }); } } )); // Serialize user to store in session passport.serializeUser((user, done) => { done(null, user.id); }); // Deserialize user from session passport.deserializeUser((id, done) => { const user = users.find(u => u.id === id); done(null, user); }); // Login route app.post('/login', passport.authenticate('local', { successRedirect: '/success', failureRedirect: '/failure' })); // Success route app.get('/success', (req, res) => { res.send('Login successful!'); }); // Failure route app.get('/failure', (req, res) => { res.send('Login failed!'); }); // Start the server const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });

Explanation :

  • express.json() और express.urlencoded() middleware का use करके request data को parse कर रहे हैं।

  • express-session middleware को use करके session handle कर रहे हैं, जो कि authentication state को maintain करता है।

  • passport.initialize() और passport.session() को middleware के रूप में use कर रहे हैं।

  • LocalStrategy को define कर रहे हैं, जो कि local authentication के लिए username और password को verify करता है।

  • एक array create किया गया है users का, जो कि dummy data के लिए use हो रहा है. आप real-world applications में database के साथ काम करेंगे ।

  • /login route को handle कर रहे हैं जहाँ passport.authenticate middleware का use हो रहा है।

  • Success और failure routes को define किया गया है जो authentication के outcome को show करते हैं।

Implementing Other Strategies

Passport का सबसे बड़ा advantage है कि आप easily other strategies को implement कर सकते हैं, जैसे OAuth with Google or Facebook.

NodeJS passport Example with Google OAuth

npm install passport-google-oauth20

const GoogleStrategy = require('passport-google-oauth20').Strategy; // Configure Google strategy passport.use(new GoogleStrategy({ clientID: 'YOUR_GOOGLE_CLIENT_ID', clientSecret: 'YOUR_GOOGLE_CLIENT_SECRET', callbackURL: '/auth/google/callback' }, (accessToken, refreshToken, profile, done) => { // Find or create user in the database return done(null, profile); } )); // Google OAuth route app.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }) ); // Google OAuth callback route app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/failure' }), (req, res) => { res.redirect('/success'); } );

Conclusion

Node.js में authentication implement करने के लिए passport एक powerful tool है। इसकी modular और strategy-based approach से आप easily various authentication mechanisms implement कर सकते हैं।

ये ensure करता है कि आपका application secure है और user authentication के लिए best practices follow करता है।

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !