Basic user/session integration

This commit is contained in:
Matthew Dillon 2015-04-10 13:32:44 -08:00
parent 5048fb7695
commit 2b6d7fecbb
4 changed files with 108 additions and 22 deletions

View file

@ -3,15 +3,51 @@ module.exports = function(app) {
var jwt = require('jsonwebtoken');
var authenticateRouter = express.Router();
var USERS = [
{
id: 1,
email: 'testA',
name: 'Test Admin User',
role: 'A',
createdAt: "0001-01-01T00:00:00Z",
updatedAt: "0001-01-01T00:00:00Z",
deletedAt: null
},
{
id: 2,
email: 'testR',
name: 'Test Read User',
role: 'R',
createdAt: "0001-01-01T00:00:00Z",
updatedAt: "0001-01-01T00:00:00Z",
deletedAt: null
},
{
id: 3,
email: 'testW',
name: 'Test Write User',
role: 'W',
createdAt: "0001-01-01T00:00:00Z",
updatedAt: "0001-01-01T00:00:00Z",
deletedAt: null
}
]
authenticateRouter.post('/', function(req, res) {
// wait for a bit to simulate cold boot of heroku api
var ms = 3000 + new Date().getTime();
while (new Date() < ms){}
if (req.body.email === 'test' && req.body.password === 'test') {
if ((req.body.email === 'testA' || req.body.email === 'testR' || req.body.email === 'testW' )
&& req.body.password === 'test') {
var user = USERS.filter(function(u) {
if (u.email == req.body.email) {
return u;
}
})[0];
var token = jwt.sign({
'name': 'Test User',
'role': 'A'
'name': user.name,
'role': user.role
}, 'secret',
{
expiresInMinutes: 60,
@ -19,7 +55,8 @@ module.exports = function(app) {
subject: 'test',
});
res.send({
'token': token
'token': token,
'user_id': user.id,
});
} else {
res.status(401).send({'error':'Invalid username or password'});