src/middleware/auth.ts −23+47
@@ -1,12 +1,18 @@
1 import { Request, Response, Next } from 'express';
2-import { getSession } from '../utils/session';
3-import { SessionStore } from '../types/session';
2+import { verifyToken, TokenPayload } from '../utils/jwt';
3+import { AuthError } from '../types/auth';
4
5-export async function authMiddleware(req, res, next) {
6- const session = await getSession(req.cookies.sid);
7- if (!session) return res.status(401).end();
5+export async function authMiddleware(
6+ req: Request, res: Response, next: Next
7+) {
8+ const token = req.headers.authorization?.split(' ')[1];
9+ if (!token) throw new AuthError('NO_TOKEN');
10+ const payload = await verifyToken(token);
11+ req.user = payload.user;
12 next();
13 }
src/utils/jwt.ts +32
@@ -0,0 +1,32 @@
1+import jwt from 'jsonwebtoken';
2+import { TokenPayload } from '../types/auth';
3+
4+export function verifyToken(token: string): TokenPayload {
5+ return jwt.verify(token, process.env.JWT_SECRET);
6+}