Есть класс Server к которому я подключил cookie-parser. Прописал app.use(cookieParser);
Есть файл с путями. Со страницы /signup я отправляю cookie, они отправляются и через Chrome я это вижу, но при этом при проверке этих самых куки при запросе страницы /personal при помощи функции isAuthenticated я получаю ошибку.
Cannot read property 'auth' of undefined
Почему я не могу получить куку при помощи req.cookies.auth ???
const express = require('express');
const hbs = require('hbs');
const exphbs = require('express-handlebars');
const routes = require('../routes/routes');
const session = require('express-session');
const cookieParser = require('cookie-parser');
class Server {
constructor(port) {
this.app = express();
this.port = port;
//Директория со статическими файлами
this.app.use(express.static('src/public'));
this.app.use(routes);
this.app.use(cookieParser);
//Для работы с шаблонизатором handlebars
this.app.engine('hbs', exphbs(
{
layoutsDir: "src/views/layouts",
defaultLayout: 'layout',
extname: 'hbs'
}
));
//Директория с частичными шаблонами
hbs.registerPartials("src/views/partials");
//Установка шаблонизатором handlebars
this.app.set('view engine', 'hbs');
this.app.set('views', 'src/views');
}
start(){
const STARTUP_MESSAGE = `Server is running at ${this.port} port`;
this.app.listen(this.port , (err) => {
if(err)
throw err;
else
console.log(STARTUP_MESSAGE);
});
}
}
module.exports = Server;
const {Router} = require('express');
const router = Router();
const bodyParser = require('body-parser');
const User = require('../models/User');
const bcrypt = require('bcrypt');
const cookie_parser = require('cookie-parser');
const salt = 10;
function isAuthenticated(req, res, next){
//const {cookies} = req;
if (req.cookies.auth === 'true'){
next();
}
}
var urlencodedParser = bodyParser.urlencoded({ extended: false });
router.get('/', (req,res)=>{
res.render('index.hbs',{
title : 'Коммунальные услуги'
});
});
router.get('/registration', (req,res) =>{
res.render('registration.hbs',{
title : 'Регистрация'
});
});
router.post('/registration', urlencodedParser, (req,res)=>{
if(!req.body)
return res.sendStatus(400);
const {userSurname, userName,userLastName, userEmail, userPass, userPhone} = req.body;
let hashed_pass = bcrypt.hashSync(userPass, salt);
User.create({
surname: userSurname,
name: userName,
lastname: userLastName,
login: userEmail,
password: hashed_pass,
email: userEmail,
telephone: userPhone,
personal_account_id: 1
}).then(res=>{
console.log("Registration Succesfully!");
}).catch(err=>{
console.log(err);
})
res.redirect('/signup');
})
router.get('/account' ,(req,res) =>{
res.render('account.hbs',{
});
});
router.get('/signup', (req,res)=>{
res.render('signup.hbs',{
title : 'Войти'
})
})
router.get('/about',(req,res)=>{
res.render('about.hbs',{
title: 'О компании'
})
})
router.get('/personal', isAuthenticated,(req,res)=>{
res.render('personal.hbs',{
title: 'Личный кабинет'
})
})
router.post('/signup', urlencodedParser, ((req, res) => {
if(!req.body)
return res.sendStatus(400);
let login = req.body.login.toString();
let password = req.body.password.toString();
User.findOne({where:{
login: login
//password: password
}, raw: true}).then(findedUsers=>{
if(findedUsers) {
console.log('Authenticated');
res.cookie('auth', 'true');
return res.redirect('/personal');
}
else
res.redirect('/signup');
console.log('No User with this values');
}).catch(err=>{
console.log(err);
})
})
)
module.exports = router;