const express = require('express'); var jwt = require('jsonwebtoken'); const app = express(); app.use(express.json()); app.use((req, res, next) => { res.set('Access-Control-Allow-Origin', '*'); res.set('Access-Control-Allow-Headers', '*'); next(); }); const port = 4000; const JWT_SECRET = process.env.JWT_SECRET; const loginWithUsernameAndPassword = (username, password) => { // TODO const now = Math.round(new Date().getTime() / 1000); return { role: 'todo_user', exp: now + 30 * 60, // 30 minutes }; }; app.get('/', (req, res) => res.send('Login service API')); app.post('/login', (req, res) => { const payload = req.body; const { username, password } = payload; const claims = loginWithUsernameAndPassword(username, password); const signedJWT = jwt.sign(claims, JWT_SECRET); res.json({ jwt: signedJWT }); }); app.listen(port, () => console.log(`Listening at http://localhost:${port}`));