1
0
forked from noxious/server

Improved folder structures for better maintainability

This commit is contained in:
2024-07-21 20:20:06 +02:00
parent 88820178cf
commit 62b9b4ec5c
50 changed files with 24 additions and 29 deletions

View File

@ -0,0 +1,37 @@
// socket io jwt auth middleware
import { verify } from 'jsonwebtoken';
import { TSocket } from '../utilities/Types';
import config from "../utilities/Config";
import UserRepository from "../repositories/UserRepository";
import {User} from "@prisma/client";
export async function Authentication (socket: TSocket, next: any)
{
if (!socket.request.headers.cookie) {
console.log('No cookie provided');
return next(new Error('Authentication error'));
}
const cookies = socket.request.headers.cookie.split('; ').reduce((prev: any, current: any) => {
const [name, value] = current.split('=');
prev[name] = value;
return prev;
}, {});
const token = cookies['token'];
if (token) {
verify(token, config.JWT_SECRET, async (err: any, decoded: any) => {
if (err) {
console.log('err');
return next(new Error('Authentication error'));
}
socket.user = await UserRepository.getById(decoded.id) as User;
next();
});
} else {
console.log('No token provided');
next(new Error('Authentication error'));
}
}