forked from rezoleo/le4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstrategy-ng.js
executable file
·38 lines (32 loc) · 998 Bytes
/
strategy-ng.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
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy
, config = require('./config.json');
var users = config.users;
function findByUsername(username, fn) {
for (var i = 0, len = users.length; i < len; i++) {
var user = users[i];
user.id = username;
if (user.username === username) {
return fn(null, user);
}
}
return fn(null, null);
}
passport.use(new LocalStrategy(
function(username, password, done) {
process.nextTick(function() {
findByUsername(username, function(err, user) {
if(err) {return done(err);}
if(!user) {return done(null, false, {message: 'unknown user ' + username});}
if(user.password != password) {return done(null, false, {'message':'Invalid password'});}
return done(null, user);
});
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
done(null, id);
});