|
|
@@ -1,16 +1,12 @@
|
|
|
import {
|
|
|
- Request, Response, NextFunction
|
|
|
+ Request, Response, NextFunction
|
|
|
} from "express";
|
|
|
import jwt from "jsonwebtoken";
|
|
|
+import redis from "../config/redis";
|
|
|
import {
|
|
|
- redis
|
|
|
-} from "../config/redis";
|
|
|
-import {
|
|
|
- User
|
|
|
+ User
|
|
|
} from "../models/User";
|
|
|
-
|
|
|
export interface AuthRequest extends Request {
|
|
|
- userId?: string;
|
|
|
context?: {
|
|
|
userId: string;
|
|
|
token: string;
|
|
|
@@ -34,16 +30,14 @@ export const authMiddleware = async (req: AuthRequest, res: Response, next: Next
|
|
|
decoded = jwt.verify(token, process.env.JWT_SECRET as string) as { userId: string };
|
|
|
} catch (err) {
|
|
|
res.status(401).json({
|
|
|
- message: "expired-token",
|
|
|
- code: 401
|
|
|
+ message: "expired-token", code: 401
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (!decoded || !decoded.userId) {
|
|
|
res.status(401).json({
|
|
|
- message: "invalid-token",
|
|
|
- code: 401
|
|
|
+ message: "invalid-token", code: 401
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
@@ -51,16 +45,14 @@ export const authMiddleware = async (req: AuthRequest, res: Response, next: Next
|
|
|
const cachedToken = await redis.get(decoded.userId);
|
|
|
if (!cachedToken) {
|
|
|
res.status(401).json({
|
|
|
- message: "expired-token",
|
|
|
- code: 401
|
|
|
+ message: "expired-token", code: 401
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (cachedToken !== token) {
|
|
|
res.status(401).json({
|
|
|
- message: "invalid-token",
|
|
|
- code: 401
|
|
|
+ message: "invalid-token", code: 401
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
@@ -68,8 +60,7 @@ export const authMiddleware = async (req: AuthRequest, res: Response, next: Next
|
|
|
const user = await User.findById(decoded.userId);
|
|
|
if (!user) {
|
|
|
res.status(401).json({
|
|
|
- message: "user-not-found",
|
|
|
- code: 401
|
|
|
+ message: "user-not-found", code: 401
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
@@ -78,12 +69,11 @@ export const authMiddleware = async (req: AuthRequest, res: Response, next: Next
|
|
|
userId: decoded.userId,
|
|
|
token: token
|
|
|
};
|
|
|
-
|
|
|
next();
|
|
|
+
|
|
|
} catch (error) {
|
|
|
res.status(401).json({
|
|
|
- message: "invalid-token",
|
|
|
- code: 401
|
|
|
+ message: "invalid-token", code: 401
|
|
|
});
|
|
|
}
|
|
|
};
|