Я пытаюсь обработать процесс авторизации в приложении, и в разных контроллерах мне нужно записать идентификатор пользователя в сессию. Обычный способ - сделать что-то вроде этого:
@Get('callback')
handleCallback(
@Req() req,
) {
const userId = this.authService.loginUser();
req.session.userId = userId;
}
Но мне приходится дублировать этот код во многих контроллерах, поэтому я хочу вынести его в какую-то отдельную часть кода, может быть что-то вроде этого:
@Injectable()
export class SessionService {
write(req, userId: number) {
req.session.userId = userId;
}
read(req) {
return req.session.userId;
}
}
Нормальная ли практика передавать объект запроса непосредственно сервису? Или это должен быть не сервис, а, может быть, хелпер или ещё что-то? Или мне просто нужно продублировать эту логику во всех контроллерах?