diff options
| author | Adam Soltys <[email protected]> | 2014-09-06 19:40:55 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-09-06 19:40:55 -0700 |
| commit | e547723b23ccc58c832cac966b1b666a426afefb (patch) | |
| tree | 757da6f03a771c612002300e60e2adf60c2f98d8 /routes | |
| parent | 86d321130850e15b580c1d4705fc0bdd9473f7d8 (diff) | |
| download | coinos-server-e547723b23ccc58c832cac966b1b666a426afefb.tar.gz coinos-server-e547723b23ccc58c832cac966b1b666a426afefb.zip | |
Generate key on registration
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/sessions.js | 5 | ||||
| -rw-r--r-- | routes/users.js | 105 |
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, - from: '[email protected]', - 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, + from: '[email protected]', + subject: 'Welcome to CoinOS', + html: html }); + return sendgrid.send(email); }); - } + }); }); }, edit: function(req, res) { |
