From 454825558aef4320c82b3d3148537038364c9427 Mon Sep 17 00:00:00 2001 From: 8cy <50817549+8cy@users.noreply.github.com> Date: Sat, 23 May 2020 02:24:18 -0700 Subject: DARLING in the FRANXX --- controllers/tokenController.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 controllers/tokenController.js (limited to 'controllers/tokenController.js') diff --git a/controllers/tokenController.js b/controllers/tokenController.js new file mode 100644 index 0000000..cbcc550 --- /dev/null +++ b/controllers/tokenController.js @@ -0,0 +1,34 @@ +const config = require('../config.js'); +const db = require('knex')(config.database); +const randomstring = require('randomstring'); +const utils = require('./utilsController.js'); + +const tokenController = {}; + +tokenController.verify = async (req, res, next) => { + const token = req.body.token; + if (token === undefined) return res.status(401).json({ success: false, description: 'No token provided' }); + + const user = await db.table('users').where('token', token).first(); + if (!user) return res.status(401).json({ success: false, description: 'Invalid token' }); + return res.json({ success: true, username: user.username }); +}; + +tokenController.list = async (req, res, next) => { + const user = await utils.authorize(req, res); + return res.json({ success: true, token: user.token }); +}; + +tokenController.change = async (req, res, next) => { + const user = await utils.authorize(req, res); + const newtoken = randomstring.generate(64); + + await db.table('users').where('token', user.token).update({ + token: newtoken, + timestamp: Math.floor(Date.now() / 1000) + }); + + res.json({ success: true, token: newtoken }); +}; + +module.exports = tokenController; -- cgit v1.2.3