askhjdgkjasghdfjahs

This commit is contained in:
2026-01-28 18:04:17 +04:00
parent 8e34ec72c6
commit 7e9af29a42
8 changed files with 209 additions and 5 deletions

23
src/middleware/auth.js Normal file
View File

@@ -0,0 +1,23 @@
import jwt from "jsonwebtoken";
export function authMiddleware(req, res, next) {
const authHeader = req.headers.authorization;
if (!authHeader) {
return res.status(401).json({ message: "Нет Authorization header" });
}
const [type, token] = authHeader.split(" ");
if (type !== "Bearer" || !token) {
return res.status(401).json({ message: "Неверный формат токена" });
}
try {
const payload = jwt.verify(token, process.env.JWT_SECRET);
req.user = payload;
next();
} catch {
return res.status(401).json({ message: "Токен невалиден" });
}
}

24
src/routes/auth.js Normal file
View File

@@ -0,0 +1,24 @@
import { Router } from "express";
import jwt from "jsonwebtoken";
const router = Router();
// POST /auth/login
router.post("/login", (req, res) => {
const { email, password } = req.body;
// ⚠️ Заглушка
if (email !== "test@test.com" || password !== "1234") {
return res.status(401).json({ message: "Неверные данные" });
}
const token = jwt.sign(
{ id: 1, email },
process.env.JWT_SECRET,
{ expiresIn: "1h" }
);
res.json({ token });
});
export default router;

14
src/routes/user.js Normal file
View File

@@ -0,0 +1,14 @@
import { Router } from "express";
import { authMiddleware } from "../middleware/auth.js";
const router = Router();
// GET /user/profile
router.get("/profile", authMiddleware, (req, res) => {
res.json({
message: "Приватный профиль",
user: req.user,
});
});
export default router;

23
src/server.js Normal file
View File

@@ -0,0 +1,23 @@
import express from "express";
import dotenv from "dotenv";
import authRoutes from "./routes/auth.js";
import userRoutes from "./routes/user.js";
dotenv.config();
const app = express();
app.use(express.json());
app.use("/auth", authRoutes);
app.use("/user", userRoutes);
app.get("/health", (req, res) => {
res.json({ status: "ok" });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`🚀 Server started on http://localhost:${PORT}`);
});