Started adding authentication mailer sequence
This commit is contained in:
parent
44924b3dc7
commit
effb1f31c8
@ -25,6 +25,7 @@
|
|||||||
"mariasql": "^0.2.6",
|
"mariasql": "^0.2.6",
|
||||||
"moment": "^2.22.2",
|
"moment": "^2.22.2",
|
||||||
"morgan": "^1.9.0",
|
"morgan": "^1.9.0",
|
||||||
|
"nodemailer": "^4.6.8",
|
||||||
"qs": "^6.5.2",
|
"qs": "^6.5.2",
|
||||||
"sequelize": "^4.28.6",
|
"sequelize": "^4.28.6",
|
||||||
"sequelize-mysql": "^1.7.0",
|
"sequelize-mysql": "^1.7.0",
|
||||||
|
@ -45,6 +45,27 @@ function init() {
|
|||||||
}, {
|
}, {
|
||||||
timestamps: false
|
timestamps: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const Authentication = db.sequelize.define('authentication', {
|
||||||
|
key: {
|
||||||
|
type: Sequelize.STRING,
|
||||||
|
primaryKey: true,
|
||||||
|
allowNull: false
|
||||||
|
},
|
||||||
|
issued: Sequelize.DATE,
|
||||||
|
type: {
|
||||||
|
type: Sequelize.ENUM,
|
||||||
|
values: [ 'account-setup', 'password-reset' ]
|
||||||
|
},
|
||||||
|
userId: {
|
||||||
|
type: Sequelize.INTEGER,
|
||||||
|
allowNull: false,
|
||||||
|
references: {
|
||||||
|
model: User,
|
||||||
|
key: 'id',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
return db.sequelize.sync({
|
return db.sequelize.sync({
|
||||||
force: false
|
force: false
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
|
@ -3,12 +3,18 @@
|
|||||||
const express = require("express"),
|
const express = require("express"),
|
||||||
config = require("config"),
|
config = require("config"),
|
||||||
LdapAuth = require("ldapauth-fork"),
|
LdapAuth = require("ldapauth-fork"),
|
||||||
crypto = require("crypto");
|
crypto = require("crypto"),
|
||||||
|
createTransport = require("nodemailer").createTransport;
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
let userDB;
|
let userDB;
|
||||||
|
|
||||||
|
let mail = createTransport({
|
||||||
|
host: config.get("smtp.host"),
|
||||||
|
pool: true,
|
||||||
|
port: config.has("smtp.port") ? config.get("smtp.port") : 25
|
||||||
|
});
|
||||||
|
|
||||||
let ldap;
|
let ldap;
|
||||||
if (config.has("ldap.url")) {
|
if (config.has("ldap.url")) {
|
||||||
@ -63,6 +69,11 @@ router.post("/create", function(req, res) {
|
|||||||
return res.status(400).send("Email address already used.");
|
return res.status(400).send("Email address already used.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
|
if (!re.exec(mail)) {
|
||||||
|
return res.status(400).send("Invalid email address.");
|
||||||
|
}
|
||||||
|
|
||||||
return userDB.sequelize.query("INSERT INTO users " +
|
return userDB.sequelize.query("INSERT INTO users " +
|
||||||
"(uid,displayName,password,mail,memberSince,authenticated,notes) " +
|
"(uid,displayName,password,mail,memberSince,authenticated,notes) " +
|
||||||
"VALUES(:username,:name,:password,:mail,CURRENT_TIMESTAMP,0,:notes)", {
|
"VALUES(:username,:name,:password,:mail,CURRENT_TIMESTAMP,0,:notes)", {
|
||||||
@ -73,7 +84,16 @@ router.post("/create", function(req, res) {
|
|||||||
mail: mail,
|
mail: mail,
|
||||||
notes: who
|
notes: who
|
||||||
}
|
}
|
||||||
}).then(function(results) {
|
}).spread(function(results, metadata) {
|
||||||
|
return userDB.sequelize.query("INSERT INTO authentications " +
|
||||||
|
"(userId,issued,key,type) VALUES " +
|
||||||
|
"(:userId,CURRENT_TIMESTAMP,:key,'account-setup')", {
|
||||||
|
replacements: {
|
||||||
|
key: "magic cookie",
|
||||||
|
userId: metadata.lastID
|
||||||
|
}
|
||||||
|
}).then(function() {
|
||||||
|
});
|
||||||
/*
|
/*
|
||||||
req.session.user = {
|
req.session.user = {
|
||||||
name: name,
|
name: name,
|
||||||
@ -82,6 +102,7 @@ router.post("/create", function(req, res) {
|
|||||||
};
|
};
|
||||||
return res.status(200).send(req.session.user);
|
return res.status(200).send(req.session.user);
|
||||||
*/
|
*/
|
||||||
|
}).then(function() {
|
||||||
req.session.user = {};
|
req.session.user = {};
|
||||||
return res.status(401).send("Account has not been authenticated.");
|
return res.status(401).send("Account has not been authenticated.");
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user