diff options
| author | Pitu <[email protected]> | 2017-01-30 05:13:07 -0300 |
|---|---|---|
| committer | Pitu <[email protected]> | 2017-01-30 05:13:07 -0300 |
| commit | 6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2 (patch) | |
| tree | ad6efa64785c0862d2c8cf8df2a980580c3a4703 /controllers/tokenController.js | |
| parent | Removed unused dependency (diff) | |
| parent | Bumped version (diff) | |
| download | host.fuwn.me-6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2.tar.xz host.fuwn.me-6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2.zip | |
Merged dev into master
Diffstat (limited to 'controllers/tokenController.js')
| -rw-r--r-- | controllers/tokenController.js | 63 |
1 files changed, 25 insertions, 38 deletions
diff --git a/controllers/tokenController.js b/controllers/tokenController.js index ad2b469..31b0b3d 100644 --- a/controllers/tokenController.js +++ b/controllers/tokenController.js @@ -1,60 +1,47 @@ const config = require('../config.js') const db = require('knex')(config.database) +const randomstring = require('randomstring') let tokenController = {} tokenController.verify = function(req, res, next){ - let type = req.body.type - let token = req.body.token - - if(type === undefined) return res.json({ success: false, description: 'No type provided.' }) - if(token === undefined) return res.json({ success: false, description: 'No token provided.' }) - if(type !== 'client' && type !== 'admin') return res.json({ success: false, description: 'Wrong type provided.' }) - if(type === 'client'){ - if(token !== config.clientToken) return res.json({ success: false, description: 'Token mismatch.' }) - return res.json({ success: true }) - } + if(req.body.token === undefined) return res.json({ success: false, description: 'No token provided' }) + let token = req.body.token - if(type === 'admin'){ - if(token !== config.adminToken) return res.json({ success: false, description: 'Token mismatch.' }) + db.table('users').where('token', token).then((user) => { + if(user.length === 0) return res.json({ success: false, description: 'Token mismatch' }) return res.json({ success: true }) - } - - return res.json({ success: false, description: '(╯°□°)╯︵ ┻━┻' }) + }).catch(function(error) { console.log(error); res.json({success: false, description: 'error'}) }) + } tokenController.list = function(req, res, next){ - if(req.headers.auth !== config.adminToken) - return res.status(401).json({ success: false, description: 'not-authorized'}) - return res.json({ - clientToken: config.clientToken, - adminToken: config.adminToken - }) -} + let token = req.headers.token + if(token === undefined) return res.status(401).json({ success: false, description: 'No token provided' }) -tokenController.change = function(req, res, next){ - if(req.headers.auth !== config.adminToken) - return res.status(401).json({ success: false, description: 'not-authorized'}) + db.table('users').where('token', token).then((user) => { + if(user.length === 0) return res.json({ success: false, description: 'Token mismatch' }) + return res.json({ success: true, token: token }) + }).catch(function(error) { console.log(error); res.json({success: false, description: 'error'}) }) - let type = req.body.type - let token = req.body.token +} - if(type === undefined) return res.json({ success: false, description: 'No type provided.' }) - if(token === undefined) return res.json({ success: false, description: 'No token provided.' }) - if(type !== 'client' && type !== 'admin') return res.json({ success: false, description: 'Wrong type provided.' }) +tokenController.change = function(req, res, next){ - db.table('tokens').where('name', type).update({ value: token, timestamp: Math.floor(Date.now() / 1000) }) - .then(() => { + let token = req.headers.token + if(token === undefined) return res.status(401).json({ success: false, description: 'No token provided' }) - if(type === 'client') - config.clientToken = token - else if(type === 'admin') - config.adminToken = token - - res.json({ success: true }) + let newtoken = randomstring.generate(64) + + db.table('users').where('token', token).update({ + token: newtoken, + timestamp: Math.floor(Date.now() / 1000) + }).then(() => { + res.json({ success: true, token: newtoken }) }).catch(function(error) { console.log(error); res.json({success: false, description: 'error'}) }) + } module.exports = tokenController
\ No newline at end of file |