Firstly develop this basic method in your app.js of express application to perform basic auth
// Basic Authentication
function auth (req, res, next) {
console.log(req.headers);
var authHeader = req.headers.authorization;
if (!authHeader) {
var err = new Error('You are not authenticated!');
res.setHeader('WWW-Authenticate', 'Basic');
err.status = 401;
next(err);
return;
}
var auth = new Buffer.from(authHeader.split(' ')[1], 'base64').toString().split(':');
var user = auth[0];
var pass = auth[1];
if (user == 'admin' && pass == 'password') {
next(); // authorized
} else {
var err = new Error('You are not authenticated!');
res.setHeader('WWW-Authenticate', 'Basic');
err.status = 401;
next(err);
}
}
Secondly call the method before static rendering line of express.static
// first
app.use(auth);
// second
app.use(express.static(path.join(__dirname, 'public')));
In this server will perform basic-auth before giving access or serves up the request coming.
That's it.
Top comments (0)