-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrouter.js
54 lines (42 loc) · 1.52 KB
/
router.js
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
'use strict';
var router = new require('express').Router(),
passport = require('passport'),
generator = require('./generators'),
cookieAuthKey = require('../src/passport-cookie').key();
module.exports = function (app, dataBase) {
router.get('/profile', passport.authenticate('cookie', {
session: false
}), function (req, res) {
res.json(req.user);
});
router.post('/register', function (req, res) {
// validations
dataBase.push({
username: req.body.username,
password: req.body.password
});
res.append('content-type', 'text/html');
res.json(req.body.username + ' has been registered, now should login. <br/> <a href="/home">Login</a>');
});
router.post('/login', function (req, res) {
for (var i = 0; i < dataBase.length; i += 1) {
if (dataBase[i].username === req.body.username &&
dataBase[i].password === req.body.password) {
if (!dataBase[i].token) {
dataBase[i].token = generator.generateRandomToken();
}
var user = dataBase[i];
res.cookie(cookieAuthKey, user.token);
res.send('Welcome ' + user.username);
return;
}
}
res.send('User not found!');
});
router.post('/logout', function (req, res) {
req.logout();
res.clearCookie(cookieAuthKey);
res.send('Success logout!');
});
app.use('/auth/', router);
};