-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
77 lines (60 loc) · 1.69 KB
/
index.js
File metadata and controls
77 lines (60 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const config = require('./config');
mongoose.Promise = global.Promise;
mongoose.connect(config.database);
const router = express.Router();
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use('/api', router);
//MIDDLEWARE TO CHECK TOKEN
router.use(function (req, res, next) {
if (req.path === '/login' ||
req.path === '/register' ||
(req.path.indexOf('/verify') !== -1) ||
req.path === '/') return next();
var token = req.body.token || req.headers['x-access-token'] || req.headers['Authorization'];
if (token) {
jwt.verify(token, config.secret, function (err, decoded) {
if (err) {
return res.status(403).json({
error: true,
msg: 'Failed to authenticate token.'
});
} else {
req.decoded = decoded;
next();
}
});
} else {
return res.status(403).json({
error: true,
message: 'No token provided.'
});
}
});
//ROUTES
const userRoute = require('./routes/user.route.js');
//ENDPOINTS
router.get('/', function (req, res) {
res.json({message: 'hooray! welcome to our api!'});
});
//USER
router.route('/user/')
.put(userRoute.update)
.delete(userRoute.delete);
router.route('/user/password')
.put(userRoute.updatePassword);
router.route('/users/').get(userRoute.getAll);
router.route('/register')
.post(userRoute.create);
router.route('/verify/:username/:code')
.get(userRoute.verify);
router.route('/login')
.post(userRoute.login);
app.listen((process.env.PORT || 1337), function () {
console.log('listening on ' + (process.env.PORT || 1337));
});