У меня есть простое веб-приложение, которое позволяет регистрировать новых пользователей, используя bcrypt для хранения пароля.
Моя сущность пользователя TypeORM выглядит так:
@Entity()
export class User extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({
type: 'nvarchar',
length: 256,
nullable: false,
unique: true,
})
username: string;
@Column({
type: 'nvarchar',
length: 256,
nullable: false,
})
password: string;
@BeforeInsert() async hashPassword() {
this.password = await bcrypt.hash(this.password, 10); // salt rounds
}
async comparePasswordAsync(attempt: string): Promise<boolean> {
return await bcrypt.compare(attempt, this.password);
}
}
Создание новых пользователей использование открытой конечной точки работает нормально. Теперь предположим, что я хочу отправить продукт с учетной записью администратора по умолчанию в таблице User.
Как мне написать мигратор, чтобы он добавлял имя пользователя и пароль по умолчанию для учетной записи администратора?
Вот мой мигратор:
export class UserTable1594240665620 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
// Create the user table
await queryRunner.query(`
CREATE TABLE user(
id VARCHAR(36) PRIMARY KEY NOT NULL,
username VARCHAR(256) UNIQUE NOT NULL,
password VARCHAR(256) NOT NULL,
);`);
// Add the default user
await queryRunner.query(`INSERT INTO user(id, username, password)
VALUES (UUID(), 'defaultAdmin', ????);
`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE user`);
}
}
Что мне добавить в ???
в приведенном выше коде, чтобы сохранить хешированный пароль администратора по умолчанию?