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"
)
})