diff options
| author | Adam Soltys <[email protected]> | 2014-08-08 11:33:43 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-08-08 11:33:43 -0700 |
| commit | 2cc86381a6f79cd729048b34a72b70562a7b0ace (patch) | |
| tree | c42dda997719ce544a4dea2bf15937d293ebfd59 /src/passport.coffee | |
| parent | 3082e274b70a93fdac8a9a63934252ed914fe406 (diff) | |
| parent | 6d5c3a56067b96bb5d97cca4a80bacbf78395b2c (diff) | |
| download | coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.tar.gz coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.zip | |
Merge branch 'code_reorg'
Diffstat (limited to 'src/passport.coffee')
| -rw-r--r-- | src/passport.coffee | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/passport.coffee b/src/passport.coffee new file mode 100644 index 00000000..12913424 --- /dev/null +++ b/src/passport.coffee @@ -0,0 +1,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 |
