Files
var-monorepo/apps/dispatch-server/modules/socketJWTmiddleware.ts
2025-05-30 01:06:28 -07:00

25 lines
832 B
TypeScript

import { ExtendedError, Server, Socket } from "socket.io";
import { prisma } from "@repo/db";
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) {
console.error(err);
next(new Error("Authentication error"));
}
};