aboutsummaryrefslogtreecommitdiffstats
path: root/passport.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-07-20 11:24:09 -0700
committerAdam Soltys <[email protected]>2014-07-20 11:40:36 -0700
commit51daca704f27e59462c6d8b1731867007c8fd273 (patch)
treee573e97c4704710ff1fd8dbd5ff033504847890a /passport.js
parent9b8d66d8a7c9417132358ac2b0f0dbfa4fcd9fcd (diff)
downloadcoinos-server-51daca704f27e59462c6d8b1731867007c8fd273.tar.gz
coinos-server-51daca704f27e59462c6d8b1731867007c8fd273.zip
Precompile all coffeescript
Diffstat (limited to 'passport.js')
-rw-r--r--passport.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/passport.js b/passport.js
new file mode 100644
index 00000000..aa11d658
--- /dev/null
+++ b/passport.js
@@ -0,0 +1,45 @@
+(function() {
+ var LocalStrategy, bcrypt, db, passport;
+
+ db = require("redis").createClient();
+
+ bcrypt = require('bcrypt');
+
+ passport = require('passport');
+
+ LocalStrategy = require('passport-local').Strategy;
+
+ passport.serializeUser(function(user, done) {
+ return done(null, user.username);
+ });
+
+ passport.deserializeUser(function(username, done) {
+ return db.hgetall("user:" + username, function(err, user) {
+ return done(null, user);
+ });
+ });
+
+ passport.use(new LocalStrategy(function(username, password, done) {
+ return db.hget("user:" + username, 'password', function(err, hash) {
+ if (err) {
+ return done(err);
+ }
+ if (hash) {
+ return bcrypt.compare(password, hash, function(err, match) {
+ if (match) {
+ return db.hgetall("user:" + username, function(err, user) {
+ return done(null, user);
+ });
+ } else {
+ return done(null, false);
+ }
+ });
+ } else {
+ return done(null, false);
+ }
+ });
+ }));
+
+ module.exports = passport;
+
+}).call(this);