Skip to content

Commit 26a01e6

Browse files
committed
Add email, first name, last name to sign up. If not logged in and redirected to login page after trying to add a comment or story - get redirected back to new story and new comment after logging in
1 parent c88430b commit 26a01e6

File tree

7 files changed

+42
-10
lines changed

7 files changed

+42
-10
lines changed

Diff for: app.js

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ var methodOverride = require("method-override"),
66
flash = require("connect-flash"),
77
passport = require("passport"),
88
LocalStrategy = require("passport-local"),
9+
mongooseTypeEmail = require("mongoose-type-email"),
910
Story = require("./models/story"),
1011
Comment = require("./models/comment"),
1112
User = require("./models/user"),

Diff for: middleware/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ middlewareObj.isLoggedIn = function(req, res, next){
5454
if (req.isAuthenticated()) {
5555
return next();
5656
}
57+
req.session.redirectTo = req.originalUrl;
5758
req.flash("error", "You need to be logged in to do that");
5859
res.redirect("/login");
5960
}

Diff for: models/user.js

+4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
var mongoose = require("mongoose");
2+
// var mongooseTypeEmail = require("mongoose-type-email");
23
var passportLocalMongoose = require("passport-local-mongoose");
34

45
var userSchema = new mongoose.Schema({
56
username: String,
7+
firstName: String,
8+
lastName: String,
9+
email: String,
610
password: String,
711
stories: [
812
{

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"method-override": "^2.3.9",
1919
"moment": "^2.18.1",
2020
"mongoose": "^4.10.8",
21+
"mongoose-type-email": "^1.0.5",
2122
"passport": "^0.3.2",
2223
"passport-local": "^1.0.0",
2324
"passport-local-mongoose": "^4.0.0"

Diff for: routes/index.js

+23-7
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ router.get("/register", function(req, res){
1919

2020
// handle sign up logic
2121
router.post("/register", function(req, res){
22-
var newUser = new User({username: req.body.username});
22+
var newUser = new User(
23+
{
24+
username: req.body.username,
25+
firstName: req.body.firstName,
26+
lastName: req.body.lastName,
27+
email: req.body.email
28+
});
2329
User.register(newUser, req.body.password, function(err, user){
2430
if (err) {
2531
req.flash("error", err.message)
@@ -38,17 +44,27 @@ router.get("/login", function(req, res){
3844
res.render("login", {page: "login"});
3945
});
4046

41-
router.post("/login", passport.authenticate("local",
42-
{
43-
successRedirect: "/stories",
44-
failureRedirect: "/login"
45-
}), function(req, res){
47+
router.post("/login", function(req, res, next){
48+
passport.authenticate('local', function(err, user, info){
49+
if(err){
50+
return next(err);
51+
} if(!user) {
52+
req.flash("error", "Username or password is incorrect.");
53+
return res.redirect("/login");
54+
}
55+
req.logIn(user, function(err){
56+
if(err){return next(err);}
57+
var redirectTo = req.session.redirectTo ? req.session.redirectTo: "/stories";
58+
delete req.session.redirectTo;
59+
res.redirect(redirectTo);
60+
});
61+
})(req,res,next);
4662
});
4763

4864
// logout route
4965
router.get("/logout", function(req, res){
5066
req.logout();
51-
req.flash("success", "Logged you out!");
67+
req.flash("success", "Logged out");
5268
res.redirect("/stories");
5369
});
5470

Diff for: views/login.ejs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="form-style">
66
<form action="/login" method="POST">
77
<div class="form-group">
8-
<input class="form-control" type="text" name="username" placeholder="your name">
8+
<input class="form-control" type="text" name="username" placeholder="username">
99
</div>
1010
<div class="form-group">
1111
<input class="form-control" type="password" name="password" placeholder="password">

Diff for: views/register.ejs

+11-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,19 @@
55
<div class="form-style">
66
<form action="/register" method="POST">
77
<div class="form-group">
8-
<input class="form-control" type="text" name="username" placeholder="your name">
8+
<input class="form-control" type="text" name="username" placeholder="username" required>
99
</div>
1010
<div class="form-group">
11-
<input class="form-control" type="password" name="password" placeholder="password">
11+
<input class="form-control" type="text" name="firstName" placeholder="first name" required>
12+
</div>
13+
<div class="form-group">
14+
<input class="form-control" type="text" name="lastName" placeholder="last name" required>
15+
</div>
16+
<div class="form-group">
17+
<input class="form-control" type="email" name="email" placeholder="email" required>
18+
</div>
19+
<div class="form-group">
20+
<input class="form-control" type="password" name="password" placeholder="password" required>
1221
</div>
1322
<div class="form-group">
1423
<button class="btn btn-lg btn-primary btn-block">Create Account</button>

0 commit comments

Comments
 (0)