Публикации - Node.js

Разработка express-приложения - Разработка приложения с помощью Express, sequelize и mysql2 - Авторизация пользователей

Для разработки механизмов авторизации в express имеется модуль express-session

Установка модуля:

npm install --save express-session

Подключение в файле app.js

var session = require('express-session');

В этом же файле, после инициализации объекта app добавляем сессионный ключ.

app.use(session({secret: "Shh, its a secret!"}));

После подключения модуля становится доступным объект session. Промежуточное программное обеспечение сеанса создает сеанс, устанавливает cookie сеанса и создает объект сеанса в объекте req.

Рассмотрим пример для файла app.js, в котором показано, как создать локальную переменную user_id, которая будет доступна всему приложению, в том числе файлам шаблона.

app.use(function (req, res, next) {
    res.locals = {
        user_id: req.session.user_id
    }
    next();
})

Сессионную переменную можем реализовать в экшне авторизации:

router.post('/login', function (req, res, next) {
    User.findOne({where: {email: req.body.email, password: req.body.password}})
        .then(data => {
            if (data) {
               req.session.user_id = data.id;
               res.redirect('/');
            } else {
                res.render('login', {errorText: 'error exit'})
            }

        })
        .catch(error => {
            console.log(error);
            res.send('error');
        })
});

В базовом шаблоне мы можем проверить переменную user_id

      if user_id
       a(href='/user/cabinet') Кабинет пользователя
       a(href='/user/logout') Выход
      else
       a(href='/user/register') Регистрация
       a(href='/user/login') Вход

 

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться