Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1

[jwtSession] Moving session cookies to your browser

Hello friends!

Did you wonder how sessions work in MODX? Every time someone visits the site, PHP generates a unique id for it and stores it in a PHPSESSID cookie. At the same time, an modSession record is created in the database with this id and the contents of the current session.

Each time a request is submitted, a cookie with id is sent to the site, and MODX makes a request to the database, loads the session, and then saves the changes to it. At least 2 queries to the database every time.

What does JWT offer us? Abandon all these actions on the server, and give everything you need right away in one token. It can be stored in cookies or in the browser’s local storage. And then, upon request, a user session will be created from it. Accordingly, we throw out work with the database and do not store user sessions on the server at all.

Of course, the question immediately arises — what will happen if the user fakes such a session? JWT standard will not allow it. Tokens can be read, but not changed, because they are all signed by a reliable algorithm with a key on a server that the user does not know. This is a theory, and now we proceed to practice in MODX.
Василий Наумкин
24 марта 2019, 18:56
64
0

[jwtSession] Перенос сессии в куки браузера

Привет, друзья!

Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.

При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.

Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.

Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.
Василий Наумкин
24 марта 2019, 15:52
1
233
+10

[Jevix] Версия 1.3

Еще одно дополнение, которое давно не обновлялось.

Но тут случилось сразу 2 события:
@Евгений Борисов собрал все фиксы в одном репозитории и опубликовал Jevix на packagist. Так что теперь его можно использовать в любых проектах через Composer.

— и @Fi1osof заметил недоработку с формированием ссылок со знаком @
Василий Наумкин
21 марта 2019, 13:26
292
+9

[Theme.Bootstrap] Новая версия с Bootstrap 4

Привет, друзья!

Наконец-то у меня дошли руки до обновления Theme.Bootstrap, который не менялся аж с 2017 года. Причина проста — если переводить его на Bootstrap 4, то нужно менять и стандартные чанки у кучи дополнений, а это долго.

В итоге, вместе с Theme.Bootstrap были обновлены и:
  • pdoTools
  • miniShop2 (помимо чанков вошли еще несколько правок, см. changelog)
  • mSearch2 (а здесь чанки даже на Fenom переписаны, ура!)
  • Office
Обновлённые дополнения теперь сразу из коробки предлагают адаптивные чанки, заточенные именно под Bootstrap 4.3.1 с flexbox. На Tickets у меня сил уже не хватило, может, кто другой сделает.
Василий Наумкин
17 марта 2019, 09:52
417
+25

Чистка пользователей сообщества

Вслед за упоминанием пользователей пришлось и почистить наши username, потому что там столько всякий дичи, еще со времён bezumkin.ru!

Первым делом я отключил все аккаунты, которые не заходили сюда больше года. Из 7+ тысяч пользователй осталось всего 2+. А затем уточнил правила для username пользователей:
  • Логин должен быть от 2 и до 50 символов
  • Содержать английский алфавит, цифры, точку, тире и подчёркивание.
  • Должен начинаться и заканчиваться цифрой или буквой
  • Цифры, точки и подчеркивания не могут повторяться подряд
И теперь все активные аккаунты этим правилам соответствуют.
Василий Наумкин
13 марта 2019, 11:47
436
+16

Упоминание пользователей

Привет друзья!

Рад анонсировать новую функцию в нашем сообществе, которая давно стала привычной на всех крупных сервисах — это возможность упомянуть пользователя, чтобы ему пришло уведомление, а само упоминание стало ссылкой на его профиль.

Работает как обычно, просто начните набирать @ и вам вылезет автоподсказка. Продолжайте набирать имя, и найдёте нужного пользователя.

Примерно так:
Василий Наумкин
12 марта 2019, 16:26
2
435
+19

[mSearch2] Версия 1.13 с поддержкой плагинов ms2

Представляю вам новую версию самого популярного дополнения в modstore.pro, которая улучшает работу фильтра с дополнениями для скидок.

Как известно, mFilter2 работает напрямую с базой данных, чтобы выбирать все данные для построения фильтров максимально быстро. И если эти данные чем-то меняются перед выводом, например дополнением msDiscount, то в фильтре цены будут одни значения, а при выводе товаров — другие.

Раньше мы просто расширяли фильтр и добавляли поддержку плагинов при выборке, но в новой версии это сделано из коробки.
Василий Наумкин
11 марта 2019, 07:21
4
344
+14

Thanks to the author

Hello, my friends!

Yesterday, the Habr announced thanks to Habr's authors, and I thought — why are we worse?

From today, you can specify details for payment services in your settings, and immediately after that you will have a button in your profile and in topics, next to the name. So far, I added these services:
  • Paypal
  • Donation Alerts
  • WebMoney
  • Yandex.Money
  • Qiwi
Василий Наумкин
28 февраля 2019, 16:11
40
0

Благодарности автору

Привет, друзья!

Вчера Хабр анонсировал Пользовательское вознаграждение авторам Хабра, и я подумал — а чем мы хуже?

С сегодняшнего дня вы можете указывать реквизиты для платёжных сервисов в своих настройках, и сразу после этого у вас появится кнопочка в профиле и в заметках, рядом с именем. Пока что добавил вот эти сервисы:
  • Яндекс.Деньги
  • Paypal
  • Qiwi
  • Donation Alerts
  • WebMoney
Василий Наумкин
28 февраля 2019, 12:39
2
568
+26

Что происходит с MODX 3

Регулярно поступают вопросы «а когда выйдет MODX3», «а что с ним происходит» и т.п. Поэтому решил написать небольшую заметку, чтобы потом на неё ссылаться.

MODX3 почти готов. Всё, что было написано в изначальном плане разработки (и даже сильно больше того) — сделано.

Но есть одна небольшая загвоздка: в текущей версии MODX3 вся модель самой системы — от версии 2. А внутри встроен xPDO3 с переходниками.
Сгенерировать модель для дополнений, например miniShop2, чтобы оно работало в MODX3 можно только на MODX2.

Потому что xPDO3 в составе MODX3 генерирует модель с namespaces, которая не работает со старой моделью ядра.
Василий Наумкин
27 января 2019, 12:46
1 404
+29