aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-09-06 19:40:55 -0700
committerAdam Soltys <[email protected]>2014-09-06 19:40:55 -0700
commite547723b23ccc58c832cac966b1b666a426afefb (patch)
tree757da6f03a771c612002300e60e2adf60c2f98d8 /routes
parent86d321130850e15b580c1d4705fc0bdd9473f7d8 (diff)
downloadcoinos-server-e547723b23ccc58c832cac966b1b666a426afefb.tar.gz
coinos-server-e547723b23ccc58c832cac966b1b666a426afefb.zip
Generate key on registration
Diffstat (limited to 'routes')
-rw-r--r--routes/sessions.js5
-rw-r--r--routes/users.js105
2 files changed, 57 insertions, 53 deletions
diff --git a/routes/sessions.js b/routes/sessions.js
index 38ae74b1..d01dc4f1 100644
--- a/routes/sessions.js
+++ b/routes/sessions.js
@@ -30,11 +30,12 @@
});
}
return req.login(user, function(err) {
- var url;
+ var re, url;
if (err) {
return next(err);
}
- if (req.session.redirect != null) {
+ re = new RegExp(user.username, 'g');
+ if ((req.session.redirect != null) && re.test(req.session.redirect)) {
url = req.session.redirect;
}
if (url == null) {
diff --git a/routes/users.js b/routes/users.js
index 1bffc7fb..47562df4 100644
--- a/routes/users.js
+++ b/routes/users.js
@@ -83,60 +83,63 @@
userkey = "user:" + req.body.username;
return db.hgetall(userkey, function(err, obj) {
if (obj) {
- return res.redirect(req.body.username);
- } else {
- if (req.body.confirm !== req.body.password) {
- errormsg += "Passwords must match";
- return res.render('users/new', {
- layout: 'layout',
- js: (function() {
- return global.js;
- }),
- css: (function() {
- return global.css;
- }),
- error: errormsg
- });
- }
- bcrypt.hash(req.body.password, 12, function(err, hash) {
- db.sadd("users", userkey);
- return db.hmset(userkey, {
- username: req.body.username,
- password: hash,
- email: req.body.email
- }, function() {
- req.session.redirect = "/" + req.body.username + "/edit";
- return sessions.create(req, res);
- });
+ errormsg += "Username exists";
+ }
+ if (req.body.confirm !== req.body.password) {
+ errormsg += "Passwords must match";
+ }
+ if (errormsg) {
+ return res.render('users/new', {
+ layout: 'layout',
+ js: (function() {
+ return global.js;
+ }),
+ css: (function() {
+ return global.css;
+ }),
+ error: errormsg
+ });
+ }
+ bcrypt.hash(req.body.password, 12, function(err, hash) {
+ db.sadd("users", userkey);
+ return db.hmset(userkey, {
+ username: req.body.username,
+ password: hash,
+ email: req.body.email,
+ pubkey: req.body.pubkey,
+ privkey: req.body.privkey
+ }, function() {
+ req.session.redirect = "/" + req.body.username + "/edit";
+ return sessions.create(req, res);
});
- return require('crypto').randomBytes(48, function(ex, buf) {
- var token, url;
- token = buf.toString('base64').replace(/\//g, '').replace(/\+/g, '');
- db.set(token, req.body.username);
- url = "" + req.protocol + "://" + req.hostname + ":3000/verify/" + token;
- return res.render('users/welcome', {
- user: req.params.user,
- layout: 'mail',
- url: url,
- js: (function() {
- return global.js;
- }),
- css: (function() {
- return global.css;
- })
- }, function(err, html) {
- var email, sendgrid;
- sendgrid = require('sendgrid')(config.sendgrid_user, config.sendgrid_password);
- email = new sendgrid.Email({
- to: req.body.email,
- subject: 'Welcome to CoinOS',
- html: html
- });
- return sendgrid.send(email);
+ });
+ return require('crypto').randomBytes(48, function(ex, buf) {
+ var token, url;
+ token = buf.toString('base64').replace(/\//g, '').replace(/\+/g, '');
+ db.set(token, req.body.username);
+ url = "" + req.protocol + "://" + req.hostname + ":3000/verify/" + token;
+ return res.render('users/welcome', {
+ user: req.params.user,
+ layout: 'mail',
+ url: url,
+ js: (function() {
+ return global.js;
+ }),
+ css: (function() {
+ return global.css;
+ })
+ }, function(err, html) {
+ var email, sendgrid;
+ sendgrid = require('sendgrid')(config.sendgrid_user, config.sendgrid_password);
+ email = new sendgrid.Email({
+ to: req.body.email,
+ subject: 'Welcome to CoinOS',
+ html: html
});
+ return sendgrid.send(email);
});
- }
+ });
});
},
edit: function(req, res) {