CoolFace
Apppublic

App-Transportation/backend

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
auth.js64 linesDownload Raw Back to root
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