diff options
Diffstat (limited to 'login-service/src')
| -rw-r--r-- | login-service/src/index.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/login-service/src/index.js b/login-service/src/index.js new file mode 100644 index 0000000..0de5931 --- /dev/null +++ b/login-service/src/index.js @@ -0,0 +1,35 @@ +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}`)); |
