Introduction
connect-ensure-login is a simple yet powerful middleware for Node.js applications that ensures a user is authenticated before allowing access to certain routes. This can enhance the security of your application by preventing unauthorized access to restricted areas.
Getting Started
To use connect-ensure-login
, you first need to install it:
npm install connect-ensure-login
Next, you can include it in your application:
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
API Examples
Here are some useful APIs provided by connect-ensure-login
:
// Ensure the user is logged in for accessing a specific route app.get('/profile', ensureLoggedIn('/login'), (req, res) => { res.send('Hello, ' + req.user.username); }); // Redirect to login if the user is not authenticated app.get('/protected', ensureLoggedIn(), (req, res) => { res.send('Welcome to the protected area, ' + req.user.username); }); // Custom redirect function const ensureAdmin = require('connect-ensure-login').ensureLoggedIn({ redirectTo: '/admin-login' }); app.get('/admin', ensureAdmin, (req, res) => { res.send('Welcome Admin, ' + req.user.username); });
Application Example
Here is a simple example of how you can use connect-ensure-login
in a full application:
const express = require('express'); const app = express(); const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn; const passport = require('passport'); const session = require('express-session'); // Initialize passport app.use(session({ secret: 'secret', resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); // Define routes app.get('/login', (req, res) => { res.send('Login Page'); }); app.get('/profile', ensureLoggedIn('/login'), (req, res) => { res.send('Hello, ' + req.user.username); }); app.post('/login', passport.authenticate('local'), (req, res) => { res.redirect('/profile'); }); // Start server app.listen(3000, () => { console.log('Server started on http://localhost:3000'); });
By using connect-ensure-login
, you can easily protect routes in your application and ensure only authenticated users have access to sensitive areas.
Hash: 7b9d77f04b783223cecfc4a64c1783544db5cef5b070a4dc92f1a84c1b00677a