const express = require("express")
const session = require("express-session")
const filestore = require("session-file-store")(session)
const path = require("path")
var app = express()
app.use(session({
name: "session-id",
secret: "GFGEnter",
saveUninitialized: false,
resave: false,
store: new filestore()
}))
function auth(req, res, next) {
console.log(req.session)
if (!req.session.user) {
var authHeader = req.headers.authorization;
console.log(authHeader);
var err = new Error("You are not authenticated")
res.setHeader("WWW-Authenticate", "Basic")
err.status = 401
next(err)
var auth = new Buffer.from(authHeader.split(' ')[1],
"base64").toString().split(":")
var username = auth[0]
var password = auth[1]
if (username == "admin2" && password == "password") {
req.session.user = "admin2"
next()
}
else {
var err = new Error('You are not authenticated!');
res.setHeader("WWW-Authenticate", "Basic")
err.status = 401;
return next(err);
}
}
else {
if (req.session.user === "admin2") {
next()
}
else {
var err = new Error('You are not authenticated!');
res.setHeader("WWW-Authenticate", "Basic")
err.status = 401;
return next(err);
}
}
}
app.use(auth)
app.use(express.static(path.join(__dirname, 'public')));
app.listen(3000, () => {
console.log("Server is Starting")
})