diff options
| author | Adam Soltys <[email protected]> | 2018-02-16 20:57:38 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2018-02-16 20:57:38 -0800 |
| commit | 5441b2fdd310153774eed6e335408253606a4d78 (patch) | |
| tree | da80ddffaf4ff7b382e6bb3f5a0895e654d05fd4 | |
| parent | 0e974940310ea819cba2d6d8d5f5aa48469e35b5 (diff) | |
| download | coinos-server-5441b2fdd310153774eed6e335408253606a4d78.tar.gz coinos-server-5441b2fdd310153774eed6e335408253606a4d78.zip | |
user validation
| -rw-r--r-- | index.js | 55 | ||||
| -rw-r--r-- | mutations.js | 4 |
2 files changed, 30 insertions, 29 deletions
@@ -50,19 +50,17 @@ const l = console.log }) const db = await require('./db.js')(lnrpc) - const addresses = {} - await db['User'].findAll({ - attributes: ['username', 'address'], - }).map(u => { addresses[u.address] = u.username }) - - l(addresses) - const zmqSock = zmq.socket('sub') zmqSock.connect('tcp://127.0.0.1:18503') zmqSock.subscribe('rawblock') zmqSock.subscribe('rawtx') zmqSock.on('message', async (topic, message, sequence) => { + const addresses = {} + await db['User'].findAll({ + attributes: ['username', 'address'], + }).map(u => { addresses[u.address] = u.username }) + topic = topic.toString('utf8') message = message.toString('hex') @@ -147,7 +145,9 @@ const l = console.log app.post('/sendPayment', async (req, res) => { const payments = lnrpc.sendPayment(meta, {}) payments.write({ payment_request: req.body.payreq }) - res.end() + payments.on('data', m => { + res.json(m) + }) }) app.post('/addInvoice', async (req, res) => { @@ -166,29 +166,26 @@ const l = console.log res.json(app.get('rates')) }) - app.post('/login', (req, res) => { - db.User.findOne({ - where: { - username: 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.cookie('token', token, { expires: new Date(Date.now() + 9999999) }) - res.json({ user, token }) - } else { - res.status(401).end() - } - }).catch((err) => { - l(err) - res.status(401).end() + app.post('/login', async (req, res) => { + try { + let user = await db.User.findOne({ + where: { + username: req.body.username + } }) - }).catch((err) => { - l(err) + + let result = await bcrypt.compare(req.body.password, user.password) + if (result) { + let payload = { username: user.username } + let token = jwt.sign(payload, process.env.SECRET) + res.cookie('token', token, { expires: new Date(Date.now() + 9999999) }) + res.json({ user, token }) + } else { + res.status(401).end() + } + } catch(err) { res.status(401).end() - }) + } }) app.get('/secret', passport.authenticate('jwt', { session: false }), (req, res) => { diff --git a/mutations.js b/mutations.js index 1d716e78..70e5e300 100644 --- a/mutations.js +++ b/mutations.js @@ -31,8 +31,12 @@ module.exports = (db, gqltypes, lnrpc) => { } }, resolve: async (root, { user }) => { + let exists = await db['User'].count({ where: { username: user.username } }) + if (exists) throw new Error('Username taken') + user.address = (await lnrpc.newAddress({ type: 1 }, lnrpc.meta)).address user.password = await bcrypt.hash(user.password, 1) + user.balance = 0 return db['User'].create(user) } }, |
