If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
किसी भी 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 करते हैं।
●●●
passport एक middleware है Node.js के लिए, जो authentication को simple और modular बनाता है। ये multiple strategies को support करता है जैसे कि local authentication, OAuth, OpenID Connect, etc.
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.
पहले आपको passport और passport-local (या किसी specific strategy) को install करना होगा -
npm install passport passport-local express-session
हम एक basic Express application setup करेंगे और passport
को integrate करेंगे with local strategy .
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 करते हैं।
●●●
Passport का सबसे बड़ा advantage है कि आप easily other strategies को implement कर सकते हैं, जैसे OAuth
with Google or Facebook.
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');
}
);
●●●
Node.js में authentication implement करने के लिए passport एक powerful tool है। इसकी modular और strategy-based approach से आप easily various authentication mechanisms implement कर सकते हैं।
ये ensure करता है कि आपका application secure है और user authentication के लिए best practices follow करता है।
Loading ...