#node.js #express #jwt
#node.js #экспресс #jwt
Вопрос:
В настоящее время я впервые использую функцию «Забыл пароль», и вот пока код.
отправляет электронное письмо пользователю, у которого есть URL-адрес с токеном JWT
router.post('/change-password', verifyAuth, resetPassword);
получает и подтверждает JWT, затем меняет пароль
router.post('/change-password/:token/:password', confirmResetPassword);
процесс, о котором я сейчас думаю, содержится в электронном письме, которое я отправляю пользователю
http://localhost:3000/change-passowrd?token=TOKEN_VALUE
но я не уверен, разумная это идея или нет? Я также могу использовать файлы cookie, если это лучше, есть идеи?
Ответ №1:
Можно сохранить хранилище токенов JWT в URL-адресе для функции сброса пароля. Вы должны отправить эту ссылку по электронной почте или любой другой безопасной службе связи.
Я реализовал эту функцию
https://yourapp.com/home/reset /${токен}
const data = {
from: "yourcompanymail@outlook.com",
to: user.email,
subject: "Please reset your password",
text: `Hello ${user.name},nnI heard that you lost your Teeny password. You can use the following link to reset your password: https://yourapp.com/home/reset/${token}
};
transporter.sendMail(data, function (error, info) {
if (error) {
console.log(error);
} else {
console.log("Email sent: " info.response);
}
});
Теперь, если пользователь попадает по этому URL-адресу, подтвердите токен и перенаправьте или отобразите страницу смены пароля.
Но не отправляйте пароль через URL.