diff --git a/nodejs/config/passport.js b/nodejs/config/passport.js new file mode 100644 index 0000000..630faca --- /dev/null +++ b/nodejs/config/passport.js @@ -0,0 +1,21 @@ +var passport = require('passport'); +var LocalStrategy = require('passport-local').Strategy; +var models = new require('../models'); +var users = new models.Users(); + +passport.use(new LocalStrategy( + function(username, password, done) { + users.findByName(username, function (err, results, fields) { + if (err) { return done(err); } + + if (results.length != 1) { + return done(null, false, { message: 'Incorrect username.' }); + } + + if (!users.validPassword(password, results[0])) { + return done(null, false, { message: 'Incorrect password.' }); + } + return done(null, results[0]); + }); + } +)); \ No newline at end of file diff --git a/nodejs/package.json b/nodejs/package.json index cd9f9f5..94fbef0 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -11,8 +11,12 @@ "debug": "~2.2.0", "ejs": "~2.3.3", "express": "~4.13.1", + "express-jwt": "^3.3.0", + "jsonwebtoken": "^5.7.0", "morgan": "~1.6.1", "mysql": "^2.10.2", + "passport": "^0.3.2", + "passport-local": "^1.0.0", "serialport": "^2.0.6", "serve-favicon": "~2.3.0" }