/
viktorphp
/
back-socket
Обзор
Документация
Войти
/
viktorphp
/
back-socket
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/auth/session.serializer.ts
35 строк
1 KB
Иванов Виктор Евгеньевич
release/D-24.001.00: add authorization via session
26 дек 2024, 21:26
26 дек 2024, 21:26
e65aed9
Код
Авторство
О чём код?
import { PassportSerializer } from '@nestjs/passport'; import { Injectable } from '@nestjs/common'; import { User } from 'src/entities/users/user.entity'; import { UsersService } from 'src/services/users/users.service'; @Injectable() export class SessionSerializer extends PassportSerializer { constructor(private readonly usersService: UsersService) { super(); } /** * Сериализация пользователя в сессию * @param user - пользователь * @param done - функция для вызова после завершения сериализации */ serializeUser(user: User, done: (err: Error, user: any) => void): any { done(null, { id: user.id, email: user.email }); } /** * Десериализация пользователя из сессии * @param payload - данные пользователя * @param done - функция для вызова после завершения десериализации */ deserializeUser(payload: any, done: (err: Error, payload: any) => void): any { this.usersService .getUserById(payload.id) .then((user) => { done(null, user); }) .catch((err) => { done(err, null); }); } }