const jwt = require('jsonwebtoken'); const fs = require('fs'); const path = require('path'); const router = require('express').Router(); const crypto = require('crypto'); router.post('/', (req, res) => { if (!req.body.name || !req.body.id) { return res.status(400).json({ error: 'Bad Request. The request cannot be fulfilled due to bad syntax or missing parameters.' }); } const token = crypto.randomBytes(512).toString('base64') .replace(/\+/g, '0') .replace(/\//g, '1') .substring(0, 256); fs.readFile(path.join(__dirname, '../../../data', 'user.json'), 'utf8', (err, data) => { if (err) { console.error(err); return res.sendStatus(500); } const users = JSON.parse(data); const user = users.find(u => u.name === req.body.name && u.id === req.body.id); if (!user) return res.sendStatus(404); user.token = token; fs.writeFile(path.join(__dirname, '../../../data', 'user.json'), JSON.stringify(users, null, 2), (err) => { if (err) { console.error(err); return res.sendStatus(500); } res.json({ token: token }); }); }); }); module.exports = router;