Skip to content

Commit 9a0642c

Browse files
committed
ensure auth and message route
1 parent e49bde0 commit 9a0642c

File tree

4 files changed

+126
-41
lines changed

4 files changed

+126
-41
lines changed

PassportAuth/routes.js

+32-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ routes.use(function (req, res, next) {
4141

4242
})
4343

44+
//Ensure Auth
45+
const ensureAuth = function (req, res, next) {
46+
if (req.isAuthenticated()) {
47+
res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, post-check=0, pre-check=0');
48+
next();
49+
} else {
50+
req.flash('error_message', "Please Login to continue !");
51+
res.redirect('/login');
52+
}
53+
}
54+
4455
//ROUTES
4556
//GET index signup page
4657
routes.get('/', (req, res) => {
@@ -158,7 +169,7 @@ routes.post('/login', (req, res, next) => {
158169

159170

160171
//success
161-
routes.get('/success', (req, res) => {
172+
routes.get('/success', ensureAuth, (req, res) => {
162173
res.render('success', { 'user': req.user })
163174
})
164175

@@ -168,5 +179,25 @@ routes.get('/logout', (req, res) => {
168179
req.flash('success_message', "Logout Successfully login to continue")
169180
res.redirect('/login')
170181

182+
})
183+
184+
//Post Messages
185+
routes.post('/addmsg', ensureAuth, (req, res) => {
186+
User.findOneAndUpdate({
187+
email: req.user.email
188+
},
189+
{
190+
$push: {
191+
messages: req.body['msg']
192+
}
193+
}, (err, success) => {
194+
if (err) throw err;
195+
if (success) {
196+
console.log("Added ...")
197+
}
198+
});
199+
req.flash('success_message', "Message Added Successfully")
200+
res.redirect('/success')
201+
171202
})
172203
module.exports = routes

PassportAuth/views/index.ejs

+33-22
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,21 @@
1010
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
1111

1212
<title>signup</title>
13+
<style>
14+
.form-div {
15+
width: 50%;
16+
margin: auto;
17+
box-sizing: border-box;
18+
padding: 10px;
19+
}
20+
</style>
1321
</head>
1422

1523
<body class="container mt-5 text-center ">
1624
<h1 class="text-center text-dark">
1725
Sign Up Please
1826
</h1>
19-
<div class="container mt-5 p-5 card">
27+
<div class="container mt-5 text-center">
2028

2129
<% if(typeof err !='undefined' ){ %>
2230
<% if(err.length> 0 ){ %>
@@ -28,34 +36,37 @@
2836
<% } %>
2937
<% } %>
3038

31-
32-
<form action="/register" method="POST">
33-
<div>
34-
<label for="username">Username</label>
35-
<input type="text" id="username" name="username" required value="<% if(typeof username !='undefined' ){ %>
39+
<div class="form-div card">
40+
<div class="card-body">
41+
<form action="/register" method="POST">
42+
<div class='row justify-content-between m-1'>
43+
<label for="username">Username</label>
44+
<input type="text" id="username" name="username" required value="<% if(typeof username !='undefined' ){ %>
3645
<%= username %>
3746
<% } %>">
38-
</div>
39-
<div>
40-
<label for="email">Email</label>
41-
<input type="email" id="email" name="email" required value="<% if(typeof email !='undefined' ){ %>
47+
</div>
48+
<div class='row justify-content-between m-1'>
49+
<label for="email">Email</label>
50+
<input type="email" id="email" name="email" required value="<% if(typeof email !='undefined' ){ %>
4251
<%= email %>
4352
<% } %>">
44-
</div>
45-
<div>
46-
<label for="password1">Password</label>
47-
<input type="password" id="password1" name="password1" required>
48-
</div>
49-
<div>
50-
<label for="password2">Password</label>
51-
<input type="password" id="password2" name="password2" required>
52-
</div>
53+
</div>
54+
<div class='row justify-content-between m-1'>
55+
<label for="password1">Password</label>
56+
<input type="password" id="password1" name="password1" required>
57+
</div>
58+
<div class='row justify-content-between m-1'>
59+
<label for="password2">Confrim Passwaord</label>
60+
<input type="password" id="password2" name="password2" required>
61+
</div>
5362

54-
<button type="submit" class="btn btn-success">Register</button>
63+
<button type="submit" class="btn btn-success mt-5">Register</button>
5564

56-
</form>
57-
<p>Already a member ? <a href="/login">Login</a> </p>
65+
</form>
5866

67+
<p class="mt-2">Already a member ? <a href="/login">Login</a> </p>
68+
</div>
69+
</div>
5970

6071
<!-- Optional JavaScript -->
6172
<!-- jQuery first, then Popper.js, then Bootstrap JS -->

PassportAuth/views/login.ejs

+35-16
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,57 @@
1010
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
1111

1212
<title>Login</title>
13+
<style>
14+
.form-div {
15+
width: 50%;
16+
margin: auto;
17+
box-sizing: border-box;
18+
padding: 10px;
19+
}
20+
</style>
1321
</head>
1422

1523
<body class="container mt-5 text-center ">
1624
<h1 class="text-center text-dark">
1725
Login
1826
</h1>
19-
<div class="container mt-5 p-5 card">
27+
<div class="container mt-5 text-center">
2028
<% if (success_message !='' ) { %>
2129
<div class="alert alert-success" role="alert">
2230
<%= success_message%>
2331
</div>
2432
<% } %>
25-
26-
<% if( error !='' ){ %>
33+
<% if (error_message !='' ) { %>
2734
<div class="alert alert-danger" role="alert">
28-
<%= error %>
35+
<%= error_message%>
2936
</div>
30-
3137
<% } %>
32-
<form action="/login" method="POST">
33-
<div>
34-
<label for="email">Email</label>
35-
<input type="text" id="email" name="email" required>
36-
</div>
37-
<div>
38-
<label for="password">Password</label>
39-
<input type="password" id="password" name="password" required>
38+
39+
<% if( error !='' ){ %>
40+
<div class="alert alert-danger" role="alert">
41+
<%= error %>
4042
</div>
41-
<button type="submit" class="btn btn-success">Login</button>
4243
43-
</form>
44-
<p>Not a member ? <a href="/">Register</a> </p>
44+
<% } %>
45+
46+
<div class="form-div card">
47+
<div class="card-body">
48+
<form action="/login" method="POST">
49+
<div class='row justify-content-between m-1'>
50+
<label for="email">Email</label>
51+
<input type="text" id="email" name="email" required>
52+
</div>
53+
<div class='row justify-content-between m-1'>
54+
<label for="password">Password</label>
55+
<input type="password" id="password" name="password" required>
56+
</div>
57+
<button type="submit" class="btn mt-3 btn-success">Login</button>
58+
59+
</form>
60+
<p class="mt-2">Not a member ? <a href="/">Register</a> </p>
61+
62+
</div>
63+
</div>
4564
</div>
4665
</body>
4766

PassportAuth/views/success.ejs

+26-2
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,43 @@
1818
<%= user.username %>
1919
</a>. Enjoy
2020
</div>
21-
22-
<h3 class="p-2">If You See This Page <br> Then You Have Logged In Successfully ! </h3>
2321
<a class="btn btn-danger" href="/logout">Logout</a>
2422
<div class="container p-3">
23+
<div class="p-3">
24+
<% if (success_message !='' ) { %>
25+
<div class="alert alert-success" role="alert">
26+
<%= success_message%>
27+
</div>
28+
<% } %>
29+
</div>
2530
<form action="/addmsg" method="POST">
2631
<div class="form-group">
2732
<textarea class="form-control" name="msg" id="msg" cols="30" rows="3" maxlength="200" placeholder="Enter Some Message.. 200 characters..."></textarea>
2833
</div>
2934
<div class="form-group">
3035
<button class="btn btn-outline-success" type="submit">Add Message</button>
3136
</div>
37+
38+
3239
<div>
40+
<table class="table">
41+
<thead>
42+
<tr>
43+
44+
<th scope="row">Your Messages</th>
45+
</tr>
46+
</thead>
47+
<tbody>
48+
<% user.messages.forEach(function(msg, index){ %>
49+
<tr>
50+
<td>
51+
<%= msg %>
52+
</td>
53+
</tr>
54+
<% }) %>
3355

56+
</tbody>
57+
</table>
3458
</div>
3559
</form>
3660
<p>

0 commit comments

Comments
 (0)