Skip to content

Commit 2cbc1e4

Browse files
committed
Passport
1 parent 258743a commit 2cbc1e4

File tree

8 files changed

+62
-299
lines changed

8 files changed

+62
-299
lines changed

Server-side Development with NodeJS, Express and MongoDB/conFusionServer/_811ae978a255224eeecc8809c00fa9b0_db.json

Lines changed: 0 additions & 213 deletions
This file was deleted.

Server-side Development with NodeJS, Express and MongoDB/conFusionServer/app.js

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,40 @@ var path = require('path');
44
var cookieParser = require('cookie-parser');
55
var logger = require('morgan');
66
const mongoose = require('mongoose');
7+
8+
// AUTHENTIFICATION
9+
var session = require('express-session');
10+
var FileStore = require('session-file-store')(session);
11+
var passport = require('passport');
12+
var authenticate = require('./authenticate');
13+
14+
// ROUTES
715
var indexRouter = require('./routes/index');
816
var usersRouter = require('./routes/users');
917
var dishRouter = require('./routes/dishRouter');
1018
var promoRouter = require('./routes/promoRouter');
1119
var leaderRouter = require('./routes/leaderRouter');
12-
var session = require('express-session');
13-
var FileStore = require('session-file-store')(session);
1420

1521

22+
23+
// DB
1624
const url = 'mongodb://localhost:27017/conFusion';
1725
const connect = mongoose.connect(url);
18-
1926
connect.then((db) => {
2027
console.log("Connected correctly to server");
2128
}, (err) => { console.log(err); });
2229

30+
31+
32+
2333
var app = express();
34+
2435
// view engine setup
2536
app.set('views', path.join(__dirname, 'views'));
2637
app.set('view engine', 'jade');
2738

39+
40+
2841
app.use(logger('dev'));
2942
app.use(express.json());
3043
app.use(express.urlencoded({ extended: false }));
@@ -40,26 +53,23 @@ app.use(session({
4053
store: new FileStore()
4154
}));
4255

56+
app.use(passport.initialize());
57+
app.use(passport.session());
58+
4359
app.use('/', indexRouter);
4460
app.use('/users', usersRouter);
4561

62+
4663
function auth (req, res, next) {
47-
console.log(req.session);
64+
console.log(req.user);
4865

49-
if(!req.session.user) {
50-
var err = new Error('You are not authenticated!');
51-
err.status = 403;
52-
return next(err);
66+
if (!req.user) {
67+
var err = new Error('You are not authenticated!');
68+
err.status = 403;
69+
next(err);
5370
}
5471
else {
55-
if (req.session.user === 'authenticated') {
56-
next();
57-
}
58-
else {
59-
var err = new Error('You are not authenticated!');
60-
err.status = 403;
61-
return next(err);
62-
}
72+
next();
6373
}
6474
}
6575

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
var passport = require('passport');
2+
var LocalStrategy = require('passport-local').Strategy;
3+
var User = require('./models/user');
4+
5+
passport.use(new LocalStrategy(User.authenticate()));
6+
passport.serializeUser(User.serializeUser());
7+
passport.deserializeUser(User.deserializeUser());
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
var mongoose = require('mongoose');
22
var Schema = mongoose.Schema;
3+
var passportLocalMongoose = require('passport-local-mongoose');
4+
35

46
var User = new Schema({
5-
username: {
6-
type: String,
7-
required: true,
8-
unique: true
9-
},
10-
password: {
11-
type: String,
12-
required: true
13-
},
147
admin: {
158
type: Boolean,
169
default: false
1710
}
1811
});
1912

13+
User.plugin(passportLocalMongoose);
14+
2015
module.exports = mongoose.model('User', User);

Server-side Development with NodeJS, Express and MongoDB/conFusionServer/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
"mongoose": "^5.1.7",
1616
"mongoose-currency": "^0.2.0",
1717
"morgan": "~1.9.1",
18+
"passport": "^0.4.0",
19+
"passport-local": "^1.0.0",
20+
"passport-local-mongoose": "^5.0.1",
1821
"session-file-store": "^1.2.0"
1922
}
2023
}

0 commit comments

Comments
 (0)