aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2017-04-17 19:15:12 -0700
committerAdam Soltys <[email protected]>2017-04-17 19:15:12 -0700
commite70a7bad02a23651a5c42a70a289ff7327589bbe (patch)
tree55bd73c0329a1cfd7bd49de0153e747a07ca3d9b /routes
parent73adacab3e5ebf453e3fe8b878d8656b5d07d8ff (diff)
downloadcoinos-server-e70a7bad02a23651a5c42a70a289ff7327589bbe.tar.gz
coinos-server-e70a7bad02a23651a5c42a70a289ff7327589bbe.zip
jwt login
Diffstat (limited to 'routes')
-rw-r--r--routes/rates.js2
-rw-r--r--routes/users.js58
2 files changed, 25 insertions, 35 deletions
diff --git a/routes/rates.js b/routes/rates.js
index f81085e3..99eb3773 100644
--- a/routes/rates.js
+++ b/routes/rates.js
@@ -9,7 +9,7 @@ module.exports = (function (app) {
app.set('rates', body)
} catch (undefined) {}
})
- return setTimeout(this.fetchRates, 120000)
+ return setTimeout(module.exports.fetchRates, 120000)
},
index (req, res) {
res.write(app.get('rates'))
diff --git a/routes/users.js b/routes/users.js
index 1964f88d..3560bd71 100644
--- a/routes/users.js
+++ b/routes/users.js
@@ -1,43 +1,33 @@
const Promise = require('bluebird')
const db = require("../redis")
const config = require("../config")
-const bcrypt = require('bcryptjs')
+const bcrypt = require('bcrypt')
const fs = require('fs')
const request = require('request')
+const jwt = require('jsonwebtoken')
module.exports = {
login (req, res) {
- if(req.body.name && req.body.password){
- var name = req.body.name
- var password = req.body.password
- }
- var user = db[_.findIndex(db, {name: name})]
-
- if( ! user ){
- res.status(401).json({message:"no such user found"})
- return
- }
-
- if(user.password === req.body.password) {
- var payload = {id: user.id}
- var token = jwt.sign(payload, process.env.SECRET)
- res.json({message: "ok", token: token})
- } else {
- res.status(401).json({message:"passwords did not match"})
- }
+ db.hgetallAsync('user:' + req.body.username).then((user) => {
+ bcrypt.compare(req.body.password, user.password).then((result) => {
+ if (result) {
+ let payload = { username: user.username }
+ let token = jwt.sign(payload, process.env.SECRET)
+ res.json({message: 'ok', token: token})
+ } else {
+ res.status(401)
+ }
+ }).catch((err) => {
+ console.log(err)
+ res.status(401)
+ })
+ }).catch((err) => {
+ console.log(err)
+ res.status(401)
+ })
},
secret (req, res) {
- res.json({message: "Success! You can not see this without a token"})
- },
- exists: function(req, res) {
- return db.hgetall("user:" + req.params.user.toLowerCase(), function(err, obj) {
- if (obj != null) {
- res.write('true')
- } else {
- res.write('false')
- }
- return res.end()
- })
+ res.json({message: 'Success! You can not see this without a token'})
},
index: function(req, res) {
var result
@@ -73,18 +63,18 @@ module.exports = {
db.hgetallAsync(userkey).then((obj) => {
if (obj) {
- error = { message: 'User exists' }
+ error = { message: 'user exists' }
res.status(400).json(error)
throw error
}
}).then(() => {
if (req.body.passconfirm !== req.body.password) {
- error = { message: 'Passwords must match' }
+ error = { message: 'passwords must match' }
res.status(400).json(error)
throw error
}
- bcrypt.hash(req.body.password, 12, function(err, hash) {
+ bcrypt.hash(req.body.password).then(function(err, hash) {
db.sadd("users", userkey)
db.hmset(userkey, {
username: req.body.username,
@@ -131,7 +121,7 @@ module.exports = {
req.session.user = req.body
delete req.session.user.password
if (req.body.password != null) {
- bcrypt.hash(req.body.password, 12, function(err, password) {
+ bcrypt.hash(req.body.password).then(function(err, password) {
db.hmset("user:" + (req.params.user.toLowerCase()), {
email: email,
password: password,