-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecurity.js
More file actions
47 lines (41 loc) · 1.17 KB
/
security.js
File metadata and controls
47 lines (41 loc) · 1.17 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
var LocalStrategy = require('passport-local').Strategy,
userRepository = require('./routes/repository')('users');
var securityOptions = {
loginUrl: '/login',
logoutUrl: '/logout'
};
var ensureAuthenticated = function(req, res, next) {
console.log("Checking login");
if(req.isAuthenticated()) {
return next();
}
res.redirect(securityOptions.loginUrl);
};
var init = function(passport, app, options) {
console.log("Security init called");
options = options || securityOptions;
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function (obj, done) {
done(null, obj);
});
passport.use(new LocalStrategy(
function(username, password, done){
process.nextTick(function(){
console.log("username "+username+ "password " +password);
userRepository.find({"username":username, "password":password}, function(user){
if(user.length<1) {
return done(null, false, { message: 'Unknown user ' + username });
}
return done(null,user);
});
});
}));
};
module.exports = {
initialize : function(passport, app) {
init(passport, app, securityOptions);
},
isAuthenticated: ensureAuthenticated
};