aboutsummaryrefslogtreecommitdiffstats
path: root/src/passport.coffee
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-08-08 11:33:43 -0700
committerAdam Soltys <[email protected]>2014-08-08 11:33:43 -0700
commit2cc86381a6f79cd729048b34a72b70562a7b0ace (patch)
treec42dda997719ce544a4dea2bf15937d293ebfd59 /src/passport.coffee
parent3082e274b70a93fdac8a9a63934252ed914fe406 (diff)
parent6d5c3a56067b96bb5d97cca4a80bacbf78395b2c (diff)
downloadcoinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.tar.gz
coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.zip
Merge branch 'code_reorg'
Diffstat (limited to 'src/passport.coffee')
-rw-r--r--src/passport.coffee35
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