209 похожих чатов

Привет, написал выдачу jwt и сохранение в куки refresh token


const {
accessToken,
refreshToken
} = await this.authService.checkCodeByPhone(dto, responseOptionsDto);

response.cookie('refreshToken', refreshToken, {
httpOnly: true,
maxAge: 3600,
domain: 'localhost',
path: '/auth',
secure: false
});

return {
accessToken: accessToken,
refreshToken: refreshToken,
};

теперь нужно получить данные самого пользователя и поставить гвард на некоторые маршруты, которые требуют авторизации

получения данных только что авторизованного пользователя реализовал вот так

@UseGuards(JwtAuthGuard)
@Get('me')
getAuthUser(
@JwtAuthUser() auth) {
return auth;
}

Правильно ли будет сделать декоратор, в котором по jwt токену делать запрос в базу и получать все его данные и данные из смежных таблиц, если потребуется?

как можно это глобализировать, чтобы в любом месте получать авторизованного пользователя, не плодив в каждом маршруте декораторы и запросы на данные пользователя?

3 ответов

19 просмотров

Сам гвард никуда ходить не должен уже тем более делать запросы в базу, он возвращает bolean, если true продолжить если false остановить запрос, для обращение к базе валидации и прочего описывают jwtStrategy и прокидывают её в модуль

Maksim Drazdou
я понял, спс

Вот мое решение давненькое, может не очень правильно по коду но подход вроде правильный https://gitlab.com/sagro111/myyoka-nest/-/blob/master/src/auth/jwt.strategy.ts

Похожие вопросы

Обсуждают сегодня

Карта сайта