const express = require('express'); const bodyParser = require('body-parser'); const jwt = require('jsonwebtoken'); const app = express(); const accessTokenSecret = 'somerandomaccesstoken'; app.use(bodyParser.json()); const authenticateJWT = (req, res, next) => { const authHeader = req.headers.authorization; if (authHeader) { const token = authHeader.split(' ')[1]; //const token = authHeader; //console.log(`${authHeader} \n`); //console.log(`${token} \n`); //console.log(`${accessTokenSecret} \n`); //console.log(jwt.verify(token, accessTokenSecret)); jwt.verify(token, accessTokenSecret, (err, user) => { if (err) { console.log('Bledny token'); return res.sendStatus(403); } console.log('Poprawny token'); req.user = user; next(); }); } else { res.sendStatus(401); } } const books = [ { "author": "Chinua Achebe", "country": "Nigeria", "language": "English", "pages": 209, "title": "Things Fall Apart", "year": 1958 }, { "author": "Hans Christian Andersen", "country": "Denmark", "language": "Danish", "pages": 784, "title": "Fairy tales", "year": 1836 }, { "author": "Dante Alighieri", "country": "Italy", "language": "Italian", "pages": 928, "title": "The Divine Comedy", "year": 1315 }, ] app.get('/books', authenticateJWT, (req, res) => { res.json(books); }); app.post('/books', authenticateJWT, (req, res) => { const { role } = req.user; if (role !== 'admin') { return res.sendStatus(403); } const book = req.body; books.push(book); res.send('book added successfully'); }); app.listen(4000, () => { console.log('Books service started on port 4000'); });