update auth

This commit is contained in:
2025-12-12 23:35:26 +03:30
parent 6094878e0e
commit 2815c503ff
3 changed files with 96 additions and 14 deletions
+4 -4
View File
@@ -27,7 +27,6 @@ export class TokensService {
slug: string,
em?: EntityManager,
) {
const entityManager = em || this.em;
const refreshExpire = this.configService.getOrThrow<number>('REFRESH_TOKEN_EXPIRE');
const accessExpire = this.configService.getOrThrow<number>('JWT_EXPIRATION_TIME');
@@ -39,7 +38,8 @@ export class TokensService {
const refreshToken = this.generateRefreshToken();
const type = isAdmin ? RefreshTokenType.ADMIN : RefreshTokenType.USER;
await this.storeRefreshToken(ownerId, restaurantId, refreshToken, type, entityManager);
// Only pass em if it's a transaction manager (not this.em), otherwise pass undefined to trigger flush
await this.storeRefreshToken(ownerId, restaurantId, refreshToken, type, em);
return {
accessToken: { token: accessToken, expire: dayjs().add(accessExpire, 'seconds').valueOf() },
@@ -79,8 +79,8 @@ export class TokensService {
// Within transaction, just persist (flush will be called by transaction)
entityManager.persist(token);
} else {
// Outside transaction, persist and flush
return entityManager.persistAndFlush(token);
// Outside transaction, persist and flush immediately
await entityManager.persistAndFlush(token);
}
}
@@ -9,8 +9,7 @@ import {
} from '@nestjs/websockets';
import { Server, Socket } from 'socket.io';
import { Logger, UseGuards, Inject, forwardRef } from '@nestjs/common';
// import { WsRestId } from './decorators/ws-rest-id.decorator';
import { NotificationService } from './services/notification.service';
import { NotificationService } from './services/notification.service';
import { WsAdminAuthGuard, type AuthenticatedSocket } from './guards/ws-admin-auth.guard';
import { ModuleRef } from '@nestjs/core';
import { ExecutionContext } from '@nestjs/common';
@@ -46,6 +45,7 @@ export class NotificationsGateway implements OnGatewayConnection, OnGatewayDisco
this.logger.error(
`Connection authentication failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
);
void client.emit('error', { message: 'Authentication failed' });
client.disconnect();
}
}
@@ -273,7 +273,7 @@ export class NotificationsGateway implements OnGatewayConnection, OnGatewayDisco
const canActivate = await guard.canActivate(context);
if (!canActivate) {
throw new Error('Authentication failed');
throw new Error('Authentication failed');
}
}
}