<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://dokuwiki.webmastermsk.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://dokuwiki.webmastermsk.ru/feed.php">
        <title> nodejs:sessija_i_avtorizacijam</title>
        <description></description>
        <link>https://dokuwiki.webmastermsk.ru/</link>
        <image rdf:resource="https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-08-12T13:34:26+0000</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:avtorizacija&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:csrf&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:logout&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:registracija_pol_zovatelja&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija_v_bd&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:shifrovanie_parolja&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:soobschenie_ob_oshibke&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:stranica_logina&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:zaschita_routov&amp;rev=1673515089&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico">
        <title></title>
        <link>https://dokuwiki.webmastermsk.ru/</link>
        <url>https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:avtorizacija&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:avtorizacija</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:avtorizacija&amp;rev=1673515089&amp;do=diff</link>
        <description>авторизация


const {Router} = require('express');//модуль express
const User = require('../models/user');//модель пользователя
const router = Router();//инициируем роутер

/**
 * Страница /auth/login
 */
router.get('/login',(req, res) =&gt; {

    res.render('auth/login',{//шаблон template/auth/login.hbs
        title: 'авторизация'
    });
});


/**
 * Авторизуем пользователя
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callba…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:csrf&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:csrf</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:csrf&amp;rev=1673515089&amp;do=diff</link>
        <description>CSRF - защита (Добавить токен в формы csurf)

Атака CSRF

Нельзя говорить про AJAX и не упомянуть про важнейшую деталь его реализации – защиту от CSRF-атак.</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:logout&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:logout</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:logout&amp;rev=1673515089&amp;do=diff</link>
        <description>logout


const {Router} = require('express');//модуль express
const User = require('../models/user');//модель пользователя
const router = Router();//инициируем роутер



/**
 * выйти из аккаунта
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 * res - response, ответ сервера
 */
router.get('/logout', async (req, res) =&gt; {
    //req.session.isAuthenticated = false;
…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:registracija_pol_zovatelja&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:registracija_pol_zovatelja</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:registracija_pol_zovatelja&amp;rev=1673515089&amp;do=diff</link>
        <description>регистрация пользователя

routes/auth.js


const {Router} = require('express');//модуль express
const User = require('../models/user');//модель пользователя
const router = Router();//инициируем роутер

/**
 * Регистрация пользователя
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 * res - response, ответ сервера
 */
router.post('/register', async (req, res) =&gt; {
 …</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:sessija</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija&amp;rev=1673515089&amp;do=diff</link>
        <description>сессия

server.js


const express = require('express');//Подключаем модуль
const path = require('path');//Модуль для работы с путями к файлам и папкам
const exphbs = require('express-handlebars');//Подключаем шаблонизатор
const db = require('mongoose');
const session = require('express-session');//модуль для создания сессий, в express
const config =  require('./config/config');
const User = require('./models/user');
const varMiddleware = require('./middleware/variables');//модуль проверки автори…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija_v_bd&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:sessija_v_bd</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:sessija_v_bd&amp;rev=1673515089&amp;do=diff</link>
        <description>сессия в БД

server.js


const express = require('express');//Подключаем модуль
const path = require('path');//Модуль для работы с путями к файлам и папкам
const exphbs = require('express-handlebars');//Подключаем шаблонизатор
const db = require('mongoose');
const session = require('express-session');//модуль для создания сессий, в express
const MongoStore = require('connect-mongodb-session')(session);//Реквайр возвращает функцию которую мы сразу вызываем,
// куда мы передаем пакет session, кото…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:shifrovanie_parolja&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:shifrovanie_parolja</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:shifrovanie_parolja&amp;rev=1673515089&amp;do=diff</link>
        <description>шифрование пароля (bcryptjs)


const {Router} = require('express');//модуль express
const bcrypt = require('bcryptjs');//Модуль шифрования
const User = require('../models/user');//модель пользователя
const router = Router();//инициируем роутер


/**
 * Авторизуем пользователя
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 * res - response, ответ сервера
 */
route…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:soobschenie_ob_oshibke&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:soobschenie_ob_oshibke</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:soobschenie_ob_oshibke&amp;rev=1673515089&amp;do=diff</link>
        <description>сообщение об ошибке (flash)


const express = require('express');//Подключаем модуль
const path = require('path');//Модуль для работы с путями к файлам и папкам
const csrf = require('csurf');//CSRF - защита (Cross-Site Request Forger)
const flash = require('connect-flash');//серверные сообщения
const exphbs = require('express-handlebars');//Подключаем шаблонизатор
const db = require('mongoose'); //библиотека для mongodb
const session = require('express-session');//модуль для создания сессий, в e…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:stranica_logina&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:stranica_logina</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:stranica_logina&amp;rev=1673515089&amp;do=diff</link>
        <description>страница логина

routes/auth.js


const {Router} = require('express');//модуль express

const router = Router();//инициируем роутер

/**
 * Страница /auth/login
 */
router.get('/login',(req, res) =&gt; {

    res.render('auth/login',{//шаблон template/auth/login.hbs
        title: 'авторизация',
        isAuth: true
    });
});

module.exports = router;//Экспортирум роутер</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:zaschita_routov&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nodejs:sessija_i_avtorizacijam:zaschita_routov</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=nodejs:sessija_i_avtorizacijam:zaschita_routov&amp;rev=1673515089&amp;do=diff</link>
        <description>защита роутов

middleware/auth.js


/**
 * Защита роутов от неавторизованных пользователей, ограничение доступа
 * req -запрос
 * res - ответ
 * next - продолжить выполнение, без вызова этого метода, страница не загрузится
 */
module.exports = function(req, res, next){
    if(!req.session.isAuthenticated){//проверка на авторизацию
        return res.redirect('/auth/login#login');//редирект неавторизованных пользователей
    }
    next();//
};…</description>
    </item>
</rdf:RDF>
