aboutsummaryrefslogtreecommitdiff
path: root/controllers/tokenController.js
diff options
context:
space:
mode:
authorPitu <[email protected]>2017-01-30 05:13:07 -0300
committerPitu <[email protected]>2017-01-30 05:13:07 -0300
commit6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2 (patch)
treead6efa64785c0862d2c8cf8df2a980580c3a4703 /controllers/tokenController.js
parentRemoved unused dependency (diff)
parentBumped version (diff)
downloadhost.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.js63
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