Удаление сессии в Nest
Выход пользователя или сброс доступа требует уничтожить объект сессии на сервере, а не только стереть поля. Иначе старый идентификатор в браузере снова откроет прежние данные.
У объекта сессии есть метод уничтожения с колбэком: в нём сообщают об ошибке или завершают ответ. Запрос снова передают параметром метода после подключения middleware сессии.
Покажем на примере постов:
import { Controller, Post, Req } from '@nestjs/common';
import type { Request } from 'express';
@Controller('posts')
export class PostController {
@Post('logout')
logout(@Req() request: Request): Promise<string> {
return new Promise((resolve, reject) => {
request.session.destroy((err) => {
if (err) {
reject(err);
return;
}
resolve('logged out');
});
});
}
}
В WorkerController завершите
сессию через уничтожение объекта
на запросе и верните короткое
подтверждение клиенту.