Это мой код из бэкэнда:
router.post('/passwordReset', (req,res) => {
const email = req.body.email;
var resetToken = Math.random().toString(36).substring(7);
bcrypt.hash(resetToken, 12, function(err, hash) {
UserSchema.findOneAndUpdate({email: email}, { '$set': { temp_password: hash, reset_timer: new Date()}}, {new: true},(err, data)=> {
if(!err) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
let transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: "random",
pass: "random" //i filled with random for stack :)
}
});
const mailOptions = {
from: 'random',
to: email,
subject: 'Reset Password Request ',
html: `Hello ,
Your reset password token is <b>${resetToken}</b>.
If you are viewing this mail from a Android Device click this <a href="http://localhost:4200/passwordReset/${resetToken}">link</a>.
The token is valid for only 2 minutes.
Bye.
};
transporter.sendMail(mailOptions, (err, info) => {
if(err){
res.status(500).send(err);
}
});
res.status(200).send(data);
}else{
res.status(500).send("Failed" + err);
}
}); });
});
Код из внешнего интерфейса:
onPasswordReset(email: string) {
console.log(email);
this.userService.sendEmailReset(email).subscribe(result => {
console.log(result);
},
error => {
this.onResetError = error;
console.log(this.onResetError.error + "error");
},
() => {
}
);
}
Код из сервиса:
sendEmailReset(email: string) {
console.log("its in"); // it goes to this console log when tested!
return this.http.post('http://localhost:3000/users/passwordReset', {email});
}
Проблема Это то, что все звонки Почтальона имеют статус 200 и правильный ответ (+ база данных изменена правильно). Однако часть angular не работает, что бы я ни пытался. Бэкэнд даже не получает вызов, и я получаю неопознанную ошибку.
Если вы заметили что-то, дайте мне знать, пожалуйста.
ОБНОВЛЕНИЕ : Проблема была с моим перехватчиком , Если у кого-то есть подобная проблема, не забудьте исключить путь, например: req.url.include ('/ passwordReset') из перехватчика.