Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- const uuidV4 = require('uuid/v4');
- var nodemailer = require('nodemailer');
- pendingRegistrations = {
- ABC: {
- user: "hans",
- email: "req.email",
- expiryTime: new Date(new Date().getTime() + 1000*60*5)
- }
- }
- app.get('/', function (req, res) {
- 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>'
- res.send(page)
- })
- app.get('/register/:user/:email', (req, res) => {
- console.log("register",req.params)
- let randomID = uuidV4();
- pendingRegistrations[randomID] = {
- user: req.params.user,
- email: req.params.email,
- expiryTime: new Date(new Date().getTime() + 1000*60*5)
- }
- transporter.sendMail(generateMail(req.params.user, req.params.email, "http://localhost:8081/validate/"+randomID), function(error, info){
- if(error){
- console.log(error);
- return res.send(error)
- }
- res.send("link send successfully")
- });
- //res.send("http://localhost:8081/validate/"+randomID)
- })
- app.get('/validate/:validationID', (req, res) => {
- console.log("validate",req.params)
- if (req.params.validationID in pendingRegistrations) {
- let data = pendingRegistrations[req.params.validationID]
- delete pendingRegistrations[req.params.validationID]
- if (data.expiryTime.getTime() - new Date().getTime() > 0) {
- res.send(`hi ${data.user}, your email address was validated successfully`)
- }
- else res.send("error link expired")
- }
- else {
- res.send("Invalid validationID")
- }
- })
- var server = app.listen(8081, function () {
- var host = server.address().address
- var port = server.address().port
- console.log("Example app listening at http://%s:%s", host, port)
- })
- var transporterObjectConfig = {
- host: "exchange.tu-berlin.de",
- port: "587",
- secure: false,
- requireTLS: true,
- auth: {
- user: EMAIL (mit win),
- pass: PASSWORD
- }
- };
- var transporter = nodemailer.createTransport(transporterObjectConfig)
- function generateMail(user, address, link) {
- let text = `Hi ${user}, thanks for registering at our awesome service. here is your activation line: ${link}`
- return {
- from: '"Daniel Wenzel" <daniel.wenzel@campus.tu-berlin.com>', // sender address
- to: address, // list of receivers
- subject: 'Hello here is your activation link', // Subject line
- text: text, // plaintext body
- html: text // html body
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement