Я создал REST API, используя Nest Js с TypeORM. По сути, это мой пользовательский объект
@Entity('User')
export class User extends BaseEntity {
@PrimaryGeneratedColumn()
public id: number;
@Column({ unique: true })
public username: string;
public passwordHash: string;
}
При извлечении пользователей из базы данных также возвращается конфиденциальная информация о пароле. Но мне нужно только поле пароля для входа в систему. Поэтому при вызове сервиса для входа я сравниваю пароль ha sh от пользователя базы данных с предоставленным клиентом паролем. Я никогда не хотел бы возвращать информацию о пароле обратно клиенту.
Поскольку вы можете извлекать изображения пользователей из базы данных довольно часто, вам придется довольно часто удалять информацию о паролях из объекта пользователя.
Предположим, у вас есть групповая сущность и между ними есть связь. При выборе пользователей, связанных с группой, вам также придется позаботиться о конфиденциальных данных в домене групп.
И, возможно, некоторые пользователи глубоко вложены в объект, возвращаемый большим оператором запроса SQL. Есть ли способ, которым я могу «спрятать» некоторые поля? При вызове this.usersRepository.find()
я получал бы список пользователей, и у каждого пользователя было бы поле id
и username
, но не a passwordHash
. Это упростит задачу, потому что мне нужно только извлечь поле ha sh в моем потоке signIn
.