App-Transportation/backend
0
1const express = require("express");
2const jwt = require("jsonwebtoken");
3const cookieParser = require("cookie-parser");
4const path = require("path");
5
6const secretKey =
7 "b4f4c0d01e9fe35f0a863f5c0800803a0897517dc918095dd140ea089b881d6a;";
8
9const app = express();
10app.use(express.json());
11app.use(cookieParser());
12
13const users = [
14 { id: 1, username: "user1", password: "password1" },
15 { id: 2, username: "user2", password: "password2" },
16];
17
18app.get("/login", (req, res) => {
19 res.sendFile(path.join(__dirname, "public", "login.html"));
20});
21
22// Login endpoint
23app.post("/login", (req, res) => {
24 const { username, password } = req.body;
25 const user = users.find(
26 (u) => u.username === username && u.password === password
27 );
28 if (!user) {
29 return res.status(401).json({ message: "Invalid username or password" });
30 }
31
32 const token = jwt.sign({ userId: user.id }, secretKey, { expiresIn: "15s" });
33
34 // Set token as a cookie
35 res.cookie("authToken", token, {
36 maxAge: 3600000,
37 httpOnly: true,
38 secure: true,
39 });
40
41 res.json({ message: "Login successful" });
42 console.log("Login successful", token);
43});
44
45// Protected endpoint
46app.get("/protected", (req, res) => {
47 const token = req.cookies.authToken;
48 console.log("one", token)
49 if (!token) {
50 return res.status(401).json({ message: "Unauthorized" });
51 }
52
53 jwt.verify(token, secretKey, (err, decoded) => {
54 if (err) {
55 return res.status(401).json({ message: "Unauthorized" });
56 }
57 res.json({ message: "Protected data", user: decoded.userId });
58 });
59});
60
61app.listen(3000, () => {
62 console.log("Server is running on port 3000");
63});
64 