From f3e72a2fa71daf354306a1503ac07b6db8e0f3bb Mon Sep 17 00:00:00 2001 From: DigoCast Date: Sun, 3 May 2026 02:06:00 -0300 Subject: [PATCH] fix: chat module and chat gateway --- backend/src/modules/chat/chat.module.ts | 9 ++++++++- .../modules/chat/presentation/chat.gateway.ts | 19 +++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/backend/src/modules/chat/chat.module.ts b/backend/src/modules/chat/chat.module.ts index e21bc66..b039c74 100644 --- a/backend/src/modules/chat/chat.module.ts +++ b/backend/src/modules/chat/chat.module.ts @@ -10,6 +10,7 @@ import { MessageRepositoryMongodb } from '../Messages/infra/message.repository.m import { ChatController } from './presentation/chat.controller'; import { TicketSchemaClass, TicketSchema } from '../ticket/infra/schemas/ticket.mongo.schema'; import { User, UserSchema } from '../user/user.schema'; +import { ConfigModule, ConfigService } from '@nestjs/config'; @Module({ imports: [ @@ -19,7 +20,13 @@ import { User, UserSchema } from '../user/user.schema'; { name: TicketSchemaClass.name, schema: TicketSchema }, { name: User.name, schema: UserSchema }, ]), - JwtModule.register({ secret: 'secret' }), + JwtModule.registerAsync({ + imports: [ConfigModule], + inject: [ConfigService], + useFactory: (configService: ConfigService) => ({ + secret: configService.get('JWT_SECRET'), + }), + }), ], controllers: [ChatController], providers: [ diff --git a/backend/src/modules/chat/presentation/chat.gateway.ts b/backend/src/modules/chat/presentation/chat.gateway.ts index e782664..2d5ab16 100644 --- a/backend/src/modules/chat/presentation/chat.gateway.ts +++ b/backend/src/modules/chat/presentation/chat.gateway.ts @@ -23,13 +23,14 @@ export class ChatGateway implements OnGatewayConnection, OnGatewayDisconnect { async handleConnection(client: Socket) { try { - const token = - client.handshake.auth?.token || - client.handshake.headers?.authorization?.replace('Bearer ', ''); + let token = client.handshake.auth?.token; + + if (!token && client.handshake.headers?.authorization) { + token = client.handshake.headers.authorization.replace('Bearer ', '').trim(); + } if (!token) { - client.disconnect(); - return; + throw new Error('Token não foi enviado pelo frontend'); } if (token.startsWith('TEST_TOKEN_')) { @@ -44,15 +45,17 @@ export class ChatGateway implements OnGatewayConnection, OnGatewayDisconnect { } const payload = await this.jwtService.verifyAsync(token); + client.data.user = { id: payload.sub, email: payload.email, role: payload.role, }; - console.log(`Usuário autenticado conectado: ${client.id} (${payload.email})`); - } catch { - console.log(`Conexão recusada — token inválido: ${client.id}`); + console.log(`Usuário autenticado no chat: ${client.id} (${payload.email})`); + + } catch (error: any) { + console.log(`Conexão recusada [${client.id}] - Motivo: ${error.message}`); client.disconnect(); } }