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
|
db = require("redis").createClient()
bcrypt = require('bcrypt')
passport = require('passport')
LocalStrategy = require('passport-local').Strategy
passport.serializeUser((user, done) ->
done(null, user.username)
)
passport.deserializeUser((username, done) ->
db.hgetall("user:"+username, (err, user) ->
return done(null, user)
)
)
passport.use(new LocalStrategy(
(username, password, done) ->
db.hget("user:"+username, 'password', (err, hash) ->
return done(err) if err
if hash
bcrypt.compare(password, hash, (err, match) ->
if match
db.hgetall("user:"+username, (err, user) ->
return done(null, user)
)
else
return done(null, false)
)
else
return done(null, false)
)
))
module.exports = passport
|