diff options
Diffstat (limited to 'passport.coffee')
| -rw-r--r-- | passport.coffee | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/passport.coffee b/passport.coffee new file mode 100644 index 00000000..280117d1 --- /dev/null +++ b/passport.coffee @@ -0,0 +1,30 @@ +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(username, (err, user) -> + return done(null, user) + ) +) + +passport.use(new LocalStrategy( + (username, password, done) -> + db.hget(username, 'password', (err, hash) -> + if hash + bcrypt.compare(password, hash, (err, match) -> + if match + db.hgetall(username, (err, user) -> + return done(null, user) + ) + ) + ) +)) + +exports.passport = passport |
