I am making a login system. I am trying to make user wait for 5 minutes when login attempts exceed 3 times, here is the User Model:
const mongoose = require("mongoose");
const validator = require("validator");
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const crypto = require("crypto");
const UserSchema = new mongoose.Schema({
// Other Model Schemas
loginAttempts: { type: Number, default: 0 },
});
//Functions - Other functions above
// I am trying to make user wait for 5 minutes when login attempts exceed 3.
// But this is not working.
if (this.loginAttempts > 3) {
setTimeout(() => {
this.loginAttempts = 0;
this.save();
}, 1000 * 60 * 5);
}
if (this.loginAttempts >= 1) {
setTimeout(() => {
this.loginAttempts = 0;
this.save();
}, 1000 * 60 * 60 * 60 * 1);
}
const User = mongoose.model("User", UserSchema);
module.exports = User;
I was searching UserSchema.<parameter>, I was searching parameters or function (sorry I don't know the exact term) which works like setTimeout() or setInterval() which checks on model and updates data like I have tried in above if(){} statement.
Can anyone suggest me a function in Schema which checks on intervals and update data as the time runs out just like, setTimeout function and setInterval function