· 7 years ago · Feb 26, 2018, 08:10 AM
1const express = require('express');
2const jwt = require('jsonwebtoken');
3
4const app = express();
5
6app.get('/api', (req, res) => {
7 res.json({
8 message: 'Welcome to the API'
9 });
10});
11
12app.post('/api/posts', verifyToken, (req, res) => {
13 jwt.verify(req.token, 'secretkey', (err, authData) => {
14 if(err) {
15 res.sendStatus(403);
16 } else {
17 res.json({
18 message: 'Post created...',
19 authData
20 });
21 }
22 });
23});
24
25app.post('/api/login', (req, res) => {
26 const user = {
27 id: 1,
28 username: 'what',
29 email: 'what@gmail.com'
30 }
31
32 jwt.sign({user}, 'secretkey', { expiresIn: '3000s' }, (err, token) => {
33 res.json({
34 token
35 });
36 });
37});
38
39
40function verifyToken(req, res, next) {
41 const bearerHeader = req.headers['authorization'];
42 if(typeof bearerHeader !== 'undefined') {
43 const bearer = bearerHeader.split(' ');
44 const bearerToken = bearer[1];
45 req.token = bearerToken;
46 next();
47 } else {
48 res.sendStatus(403);
49 }
50
51}
52
53app.listen(5000, () => console.log('Server started on port 5000'));