const express = require(
"express"
);
const session = require(
"express-session"
);
const cookieParser = require(
"cookie-parser"
);
const app = express();
app.use(
session({
secret:
"your-secret-key"
,
resave:
false
,
saveUninitialized:
false
,
})
);
app.use(cookieParser());
const isAuthenticated = (req, res, next) => {
if
(req.session.user) {
next();
}
else
{
res.redirect(
"/login"
);
}
};
app.get(
"/"
, (req, res) => {
res.send(
"Welcome to the Express.js Session and Cookies Example!"
);
});
app.get(
"/login"
, (req, res) => {
res.sendFile(__dirname +
"/login.html"
);
});
app.post(
"/login"
, express.urlencoded({ extended:
true
}), (req, res) => {
const { username, password } = req.body;
if
(username ===
"admin"
&& password ===
"admin"
) {
req.session.user = username;
res.cookie(
"sessionId"
, req.sessionID);
res.redirect(
"/profile"
);
}
else
{
res.send(
"Invalid credentials. Please try again."
);
}
});
app.get(
"/profile"
, isAuthenticated, (req, res) => {
const userData = req.session.user;
res.send(`Welcome, ${userData.username}!
<a href=
"/logout"
>Logout</a>`);
});
app.get(
"/logout"
, (req, res) => {
req.session.destroy(() => {
res.clearCookie(
"sessionId"
);
res.redirect(
"/login"
);
});
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server is running on http:
});