From 4994509425565c85dadd7bee8577a29132d04e1a Mon Sep 17 00:00:00 2001 From: Rohan Date: Tue, 11 Aug 2020 16:39:07 +0530 Subject: [PATCH] create sign-in sign-out controller (signout with the help of clearCookie() add restrictions to profile page with the help of cookies) --- controllers/users_controller.js | 39 +++++++++++++++++++++++++++++---- routes/users.js | 2 ++ views/sign-in.ejs | 4 ++-- views/users.ejs | 19 ++++++---------- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/controllers/users_controller.js b/controllers/users_controller.js index 146c0a4..c9f6c52 100644 --- a/controllers/users_controller.js +++ b/controllers/users_controller.js @@ -1,8 +1,21 @@ const User = require('../models/user'); +const { readyState } = require('../config/mongoose'); module.exports.profile = function(req, res){ - return res.render('users', { - title: 'USER' - }); + if(req.cookies.user_id){ + User.findById(req.cookies.user_id, function(err, user){ + if(user){ + console.log(user); + return res.render('users', { + title: 'USER', + user:user + }); + } + return res.redirect('/users/sign-in') + }) + } + else{ + return res.redirect('/users/sign-in'); + } } module.exports.signin = function(req, res){ return res.render('sign-in.ejs',{ @@ -42,5 +55,23 @@ module.exports.create = function(req, res){ }); } module.exports.createSession = function(req, res){ - // todo later + console.log(req.body); + User.findOne({email: req.body.email}, function(err, user){ + if(err){console.log('error in finding user in signing up',err); return} + if(user){ + console.log(user.password, req.body.password); + if(user.password != req.body.password){ + return res.redirect('back'); + } + res.cookie('user_id', user.id); + return res.redirect('/users/profile'); + } + else{ + return res.redirect('back'); + } + }); } +module.exports.signOut = function(req, res){ + res.clearCookie('user_id'); + res.redirect('back'); +} \ No newline at end of file diff --git a/routes/users.js b/routes/users.js index b80afd1..ce2e08c 100644 --- a/routes/users.js +++ b/routes/users.js @@ -7,4 +7,6 @@ router.get('/post', postController.post); router.get('/sign-in', usersController.signin); router.get('/sign-up', usersController.signup); router.post('/create', usersController.create); +router.post('/create-session', usersController.createSession); +router.post('/signOut', usersController.signOut); module.exports = router; \ No newline at end of file diff --git a/views/sign-in.ejs b/views/sign-in.ejs index 88342b1..b245ff7 100644 --- a/views/sign-in.ejs +++ b/views/sign-in.ejs @@ -11,8 +11,8 @@

Code ial

-
- + +
diff --git a/views/users.ejs b/views/users.ejs index b23fd21..ed464c4 100644 --- a/views/users.ejs +++ b/views/users.ejs @@ -1,13 +1,8 @@ - - - - - - <%= title %> - - - <%- include('_header'); %> +
+ + + +

Hello / <%= title %>

- <%- include('_footer'); %> - - \ No newline at end of file +
<%=user.name%>
+
<%=user.email%>