Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var bodyParser = require('body-parser');
- var session = require('express-session');
- var morgan = require('morgan');
- var User = require('./model/user');
- var cookieParser = require('cookie-parser');
- // Create instance of express app
- var app = express();
- // set the port for the app
- app.set('port',3000);
- // set the view engine and where views are located
- app.set('view engine', 'ejs');
- app.set('views', 'views');
- // set morgan to log info about app
- app.use(morgan('dev'));
- app.use(cookieParser());
- // initializing body-parser to parse incoming parameters from requests to req.body
- app.use(bodyParser.urlencoded({extended:true}));
- // initializing express-session to track logged in user across sessions
- app.use(session({
- key: 'user_sid',
- secret: 'some-private-key',
- resave: false,
- saveUninitialized: false,
- cookie:{
- expires: 600000
- }
- }));
- // This middleware will check if user's cookie is still saved in browser and user is not set, then automatically log the user out.
- // This usually happens when you stop your express server after login, your cookie still remains saved in the browser.
- app.use((req, res, next) => {
- if (req.cookies.user_sid && !req.session.user) {
- res.clearCookie('user_sid');
- }
- next();
- });
- var sessionChecker = (req, res, next) => {
- if (req.session.user === undefined ){ //&& !req.cookies.user_sid
- req.session.redirect_to = req.path;
- res.redirect('/login');
- }else{
- next();
- }
- };
- // Route for when signup page is requested via get
- app.get('/signup', function(req, res){
- res.render('signup');
- });
- app.post('/signup', function(req, res) {
- var userInfo = {
- username : req.body.username,
- password : req.body.password,
- email : req.body.email,
- roles : req.body.roles
- };
- var createdUser = User.create(userInfo);
- if (createdUser){
- req.session.user = userInfo;
- res.redirect('/loggedin');
- }else{
- res.redirect('/signup');
- }
- });
- app.get('/login', function(req, res){
- res.render('login');
- });
- app.post('/login', function(req, res){
- var userInfo = {
- username : req.body.username,
- password : req.body.password
- }
- var validate = User.validatePassword(userInfo);
- if (validate){
- req.session.user = userInfo;
- //res.redirect('/loggedin');
- res.redirect('/loggedin');
- }
- });
- // route for user logout
- app.get('/logout', (req, res) => {
- if (req.session.user && req.cookies.user_sid) {
- res.clearCookie('user_sid');
- res.render('login');;
- } else {
- res.render('login');;
- }
- });
- app.get('/loggedin', sessionChecker, function(req, res){
- res.render('loggedin',{
- user: req.session.user
- });
- });
- app.get('/newpage', sessionChecker, (req, res) => {
- res.render('newpage',{
- user: req.session.user
- });
- });
- app.get('/userprofile', sessionChecker, (req, res) => {
- res.render('userprofile',{
- user: req.session.user
- });
- });
- // Starting app server on port
- // start the express server
- app.listen(app.get('port'), () => console.log(`App started on port ${app.get('port')}`));
Add Comment
Please, Sign In to add comment