Advertisement
Guest User

Untitled

a guest
Feb 14th, 2017
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var app = express();
  3. const uuidV4 = require('uuid/v4');
  4. var nodemailer = require('nodemailer');
  5. pendingRegistrations = {
  6.   ABC: {
  7.     user: "hans",
  8.     email: "req.email",
  9.     expiryTime: new Date(new Date().getTime() + 1000*60*5)
  10.   }
  11. }
  12.  
  13. app.get('/', function (req, res) {
  14.   let page = '<!DOCTYPE html>  <html>  <body>  Name: <input type="text" id="name" value="daniel"><br>  Email: <input type="text" id="email" value="daniel.wenzel@campus.tu-berlin.de"><br><br>  <button onclick="myFunction()">Send</button>  <script>  function myFunction() {    window.location.href="/register/"+document.getElementById("name").value+"/"+document.getElementById("email").value}  </script>  </body></html>'
  15.  
  16.    res.send(page)
  17. })
  18.  
  19. app.get('/register/:user/:email', (req, res) => {
  20.   console.log("register",req.params)
  21.  
  22.   let randomID = uuidV4();
  23.  
  24.   pendingRegistrations[randomID] = {
  25.     user: req.params.user,
  26.     email: req.params.email,
  27.     expiryTime: new Date(new Date().getTime() + 1000*60*5)
  28.   }
  29.  
  30.   transporter.sendMail(generateMail(req.params.user, req.params.email, "http://localhost:8081/validate/"+randomID), function(error, info){
  31.       if(error){
  32.           console.log(error);
  33.           return res.send(error)
  34.       }
  35.       res.send("link send successfully")
  36.   });
  37.   //res.send("http://localhost:8081/validate/"+randomID)
  38. })
  39.  
  40. app.get('/validate/:validationID', (req, res) => {
  41.   console.log("validate",req.params)
  42.   if (req.params.validationID in pendingRegistrations) {
  43.     let data = pendingRegistrations[req.params.validationID]
  44.     delete pendingRegistrations[req.params.validationID]
  45.     if (data.expiryTime.getTime() - new Date().getTime() > 0) {
  46.       res.send(`hi ${data.user}, your email address was validated successfully`)
  47.     }
  48.     else res.send("error link expired")
  49.   }
  50.   else {
  51.     res.send("Invalid validationID")
  52.   }
  53. })
  54.  
  55. var server = app.listen(8081, function () {
  56.    var host = server.address().address
  57.    var port = server.address().port
  58.  
  59.    console.log("Example app listening at http://%s:%s", host, port)
  60. })
  61.  
  62. var transporterObjectConfig = {
  63.   host: "exchange.tu-berlin.de",
  64.   port: "587",
  65.   secure: false,
  66.   requireTLS: true,
  67.   auth: {
  68.     user: EMAIL (mit win),
  69.     pass: PASSWORD
  70.   }
  71. };
  72. var transporter = nodemailer.createTransport(transporterObjectConfig)
  73.  
  74.  
  75.  
  76. function generateMail(user, address, link) {
  77.   let text = `Hi ${user}, thanks for registering at our awesome service. here is your activation line: ${link}`
  78.   return {
  79.       from: '"Daniel Wenzel" <daniel.wenzel@campus.tu-berlin.com>', // sender address
  80.       to: address, // list of receivers
  81.       subject: 'Hello here is your activation link', // Subject line
  82.       text: text, // plaintext body
  83.       html: text // html body
  84.   };
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement