@Leo_SAN

Как отправить verification code на почту?

Как можно передать verification code, чтобы он генерировался при отправке сообщения и я мог получить его на клиент?
const nodemailer = require("nodemailer");
const responseCreator = require("../response_creators/ResponseCreator");
const UserError = require("../error/UserError");

const generateCode = (function () {
  code = Math.round(Math.random() * 1000000)
})

const verificationCode = generateCode()
const getEmailData = (to) => {  
  const message = {
    to,
    subject: "BorrowLand: Verification code",
    html: `
        <h2>Verification code</h2>
        <ul>
            <li>${verificationCode}</li>
        </ul>`,
  };
  return message;
};

const sendEmail = (to) => {
  const transporter = nodemailer.createTransport(
    {
      host: "smtp.gmail.com",
      port: 587,
      secure: false, 
      
      auth: {
        user: "*****", 
        pass: "****", 
      },
    },
    {
      from: "Borrow Land <borrowlandservice@gmail.com>",
    }
  );

  const mail = getEmailData(to);

  transporter.sendMail(mail, function (error, response, next) {
    if (error) {
      return next(UserError.badRequest(error));
    } else {
      return response.json(responseCreator.response({message: "email send"}));
    }
    transporter.close();
  });
};

class VerificationCodeController{
    async sendCode(req, res){
      const sendEmailCode = await sendEmail(req.body.email)
      return res.json(responseCreator.response(sendEmailCode));
    }
    async recieveCode(req, res){
      return res.json(responseCreator.response({verificationCode}))
    }
}

module.exports = new VerificationCodeController();
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы