◾️ hash a password (※youtube lecture memo)
....
import * as bcrypt from 'bcryptjs';
@Injectable()
export class UsersService {
  constructor(@InjectModel('User') private readonly userModel: Model<User>) {}
  async createUser(user: CreateUserDto) {
    const createdUser = new this.userModel({
      username: user.username,
      password: await bcrypt.hash(user.password, 12),
    });
    return await createdUser.save();
  }
...◾️ compare password – get password hash info from db and compare with input
.....
async validateUser({ username, password }: CreateUserDto) {
    let isValid = false;
    try {
      const user = await this.usersService.findOne(username);
      if (user) {
        isValid = await bcrypt.compare(password, user.password);
      }
    } catch {
      console.log('EXCEPTION OCCURED');
    }
    return isValid;
  }
.....◾️ package
npm install –save bcryptjs
npm install –save-dev @types/bcryptjs
