Files
var-monorepo/apps/dispatch-server/modules/socketJWTmiddleware.ts
2025-06-04 17:27:58 -07:00

25 lines
848 B
TypeScript

import { ExtendedError, Server, Socket } from "socket.io";
import { prisma } from "@repo/db";
import jwt from "jsonwebtoken";
/* if (!process.env.DISPATCH_APP_TOKEN) throw new Error("DISPATCH_APP_TOKEN is not defined"); */
export const jwtMiddleware = async (socket: Socket, next: (err?: ExtendedError) => void) => {
try {
const { uid } = socket.handshake.auth;
if (!uid) return new Error("Authentication error");
/* const token = socket.handshake.auth?.token;
if (!token) return new Error("Authentication error");
const decoded = jwt.verify(token, process.env.DISPATCH_APP_TOKEN!); */
// socket.data.userId = decoded.; // User ID lokal speichern
const user = await prisma.user.findUniqueOrThrow({
where: { id: uid },
});
socket.data.user = user;
next();
} catch (err) {
next(new Error("Authentication error"));
}
};