Nous utilisons l'API Twilio pour envoyer des SMS, puis la fonction personnalisée vérifie l'OTP. Nous voulons que l'identifiant de l'utilisateur qui s'est connecté avec un texte fort le numéro de téléphone unique ici est notre fonction principale.
const donorLogin = (req, res) => {
donorCredentials
.findOne({ mobileNo: req.body.phone })
.then((user) => {
if (!user) {
return res.status(401).json({
success: false,
msg: There is no account of ${req.body.phone},
});
}
// Function defined at bottom of app.js
const isValid = validPassword(req.body.password, user.hash, user.salt);
if (isValid) {
const accessToken = jwt.sign(
{
mobileNo: user.mobileNo,
},
JWT_AUTH_TOKEN,
{
expiresIn: "1d",
}
);
res
.status(200)
.send(getUser(req.body.phone));
} else {
res.status(401).json({ success: false, msg: "Wrong Password" });
}
})
.catch((err) => {
res.status(400).send({ err: err });
});
};
async function getUser(phone) {
try {
const userInfo= await Donor.find({ mobileNo: phone });
// console.log(userInfo[0]);
// let data = userInfo[0];
return JSON.stringify(userInfo[0]) ;
}
catch (err) {
console.log(err);
res.status(500).send(err);
}
};
C'est la fonction du pilote où nous obtenons l'objet utilisateur avec toutes les informations d'identification que nous passons à res.send qui retourne un objet nul. Lorsque nous enregistrons l'objet dans la fonction valide principale, il est enregistré comme une promesse { pending }.