From 886dfa4f244f85d330aa2cfc102dda0ed4a0c892 Mon Sep 17 00:00:00 2001 From: Raffi Date: Wed, 1 Apr 2026 21:43:35 +0200 Subject: [PATCH] route et logique du logout --- src/routes/auth.ts | 9 ++++++++- src/services/auth.service.ts | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/routes/auth.ts b/src/routes/auth.ts index b355a0b..2490e2b 100644 --- a/src/routes/auth.ts +++ b/src/routes/auth.ts @@ -1,7 +1,8 @@ import { FastifyInstance } from 'fastify' import { RegisterSchema, LoginSchema } from '../schemas/auth.schema.js' -import { registerUser, loginUser } from '../services/auth.service.js' +import { registerUser, loginUser, logoutUser } from '../services/auth.service.js' import { signAuthToken } from '../services/authToken.service.js' +import { verifyAuth } from '../middleware/verifyAuth.js' export default async function authRoutes(fastify: FastifyInstance) { fastify.post('/auth/register', async (request, reply) => { @@ -40,4 +41,10 @@ export default async function authRoutes(fastify: FastifyInstance) { return reply.status(200).send({ user }) }) + + fastify.post('/auth/logout', { preHandler: verifyAuth }, async (request, reply) => { + await logoutUser(fastify.prisma, request.user.userId) + reply.clearCookie('authToken', { path: '/' }) + return reply.status(200).send({ message: 'Déconnecté avec succès' }) + }) } \ No newline at end of file diff --git a/src/services/auth.service.ts b/src/services/auth.service.ts index 9d0601a..1dd7c72 100644 --- a/src/services/auth.service.ts +++ b/src/services/auth.service.ts @@ -68,4 +68,11 @@ export async function loginUser(prisma: PrismaClient, input: LoginInput) { tokenVersion: user.tokenVersion, }, } +} + +export async function logoutUser(prisma: PrismaClient, userId: string) { + await prisma.user.update({ + where: { id: userId }, + data: { tokenVersion: { increment: 1 } }, + }) } \ No newline at end of file