| 685 | } |
| 686 | |
| 687 | async remove2faMethod(userId, methodId, password) { |
| 688 | const user = await this.findById(userId); |
| 689 | |
| 690 | const isCorrect = await bcrypt.compare(password, user.password); |
| 691 | if (!isCorrect) { |
| 692 | return new Promise((resolve, reject) => reject(new Error(401))); |
| 693 | } |
| 694 | |
| 695 | return db.User2fa.destroy({ where: { user_id: userId, id: methodId } }) |
| 696 | .then(() => { |
| 697 | return new Promise((resolve) => resolve(true)); |
| 698 | }) |
| 699 | .catch((error) => { |
| 700 | return new Promise((resolve, reject) => reject(error)); |
| 701 | }); |
| 702 | } |
| 703 | |
| 704 | validate2faToken(userId, token) { |
| 705 | const user2FA = db.User2fa.findOne({ where: { user_id: userId, isEnabled: true } }); |