Advertisement
Coldsewoo

Untitled

Jul 4th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const nodemailer = require('nodemailer')
  2.  
  3. router.post('/reset', (req, res) => {
  4.   const username = req.body.username
  5.   User.findOne({ username: username }).exec((err, user) => {
  6.     if (err || !user) return res.json(util.successFalse(err, 'User Not Found'))
  7.     const to = user.email
  8.     const from = 'nodesewoo@gmail.com'
  9.     const subject = '[coldesewooWEB] Reset your password'
  10.     const randomCode = [...Array(30)].map(() => Math.random().toString(36)[2]).join('')
  11.     const html = `<p>Please Copy &amp; Paste the code below :&nbsp;</p>
  12.     <p><strong>${randomCode}</strong></p>
  13.     `
  14.     const mailAccount = require('../config/mailAccount.js')
  15.  
  16.     const transporter = nodemailer.createTransport({
  17.       service: 'gmail',
  18.       auth: { user: mailAccount.user, pass: mailAccount.pass },
  19.     })
  20.     const mailOptions = { from, to, subject, html }
  21.     transporter.sendMail(mailOptions, (err, info) => {
  22.       if (err) return res.json(util.successFalse(err))
  23.       else {
  24.         const date = new Date()
  25.         const resetPassword = {
  26.           code: randomCode,
  27.           expired: date.getTime() + 1000 * 60 * 60, // one hour
  28.         }
  29.         user.resetPassword = resetPassword
  30.         user.save((err, result) => {
  31.           if (err) return res.json(util.successFalse(err))
  32.           res.json(util.successTrue({email : user.email}))
  33.         })
  34.       }
  35.     })
  36.   })
  37. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement