Как сделать авторизацию пользователей в MODX Revo

Доброго времени суток друзья.

Гуляя в долгих поисках по сети мы нашли много информации о пакете LOGIN для MODx Revolution, но внятного алгоритма действий и руководства как не было, так и нет. Давайте это исправим. В этой статье мы разберемся, как нам сделать внятную авторизацию на сайте и опишем несколько подводных камней, о которых необходимо знать начинающим.

Первое, что необходимо сделать, это само собой установить пакет Login из официального репозитория. Этот процесс мы описывать не будем, все и так понятно.

Второе. Создаем необходимые ресурсы:

  1. Авторизация пользователя (если форма входа на сайт будет располагаться на отдельной странице);
  2. Регистрация пользователя
  3. Активация пользователя
  4. Сброс пароля
  5. Сброс пароля – обработчик (эта страница будет обрабатывать восстановление пароля на самом деле)
  6. Информация о пользователе
  7. Редактирование профиля
  8. Выход из системы

Третье. Настраиваем права для будущих пользователей.

Переходим в раздел Сайт -> Группы ресурсов, создаем новую группу ресурсов, называем ее к примеру, для пользователей, и указываем контекст WEB

Группы ресурсов modx

Переходим в раздел Контроль доступа -> Группы пользователя и создаем новую группы пользователей «Пользователи»

контроль доступа MODX

Далее редактируем только что созданную группу пользователей:

Переходим в раздел Разрешения и настраиваем следующие параметры:

Доступ к контекстам: Контектс: Website (web), Минимальная роль: Member – 9999.

Доступ к ресурсам: пишем созданную нами группу ресурсов «для пользователей»

Нажимаем «Сохранить».

Четвертый шаг.

Добавляем сниппеты в созданные ресурсы:

На страницу авторизации в месте вывода формы входа на сайт добавляем:


[[!Login? &loginTpl=`loginForm`]]

Чанк с шаблоном вывода формы регистрации можно подсмотрель в официальной документации.

Перейдем к странице регистрации:

Вывод сниппета выглядит так:

[[!Register? 
&successMsg=`Спасибо за регистрацию. Ждите письмо с ссылкой активации аккаунта` &activationEmailSubject=`Активация учетной записи в Интернет-магазине Adams-shop.ru` &activationResourceId=`24`
&usergroups=`Пользователи::Member` ]] [[!$registerForm?]]

Посмотрим на параметры:

successMsg – сообщение, которое будет выводиться при успешной регистрации пользователя

activationEmailSubject – тема письма со ссылкой на активацию аккаунта

activationResourceId – ID служебного ресурса, который будет выполнять активацию уже созданного аккаунта

usergroups – группы, в которые будет добавлена учетная запись пользователя

Содержимое чанка с формой регистрации.

Активация аккаунта.

[[ConfirmRegister? &authenticate=`1` &redirectTo=`1`]]

Параметры, которые мы используем:

Authenticate – если указана 1, как у нас, система сама произведет вход пользователя в систему

redirectTo – ID ресурса на который будет переадресован пользователь после успешной авторизации

Сброс пароля и восстановление.

Вызов сниппета сброса пароля:

[[!ForgotPassword? &resetResourceId=`20` &redirectTo=`18`]]

Параметры, которые мы используем:

resetResourceId – ID страницы обработчика сброса пароля

redirectTo – ID ресурса, на который мы переправляем пользователя после сброса пароля (в нашем случае – это страница с формой авторизации)

Также на странице обработчике сброса пароля мы вызываем вот такой сниппет:

[[!ResetPassword? &loginResourceId=`18`]]

В параметре loginResourceId указываем ID страницы с формой авторизации

Информация о пользователе:

Для того чтобы вызвать информацию о пользователе, авторизованном на сайте, на заранее подготовленной странице вызываем сниппет:

[[!Profile]]

Ниже указываем поля, необходимые для вывода:

Имя пользователя: [[+username]]

Полное имя: [[+fullname]]

Email: [[+email]]

Номер телефона: [[+phone]]

Адрес: [[+address]]

Ну и ссылку на ресурс с редактированием профиля.

Редактирование профиля.

Для редактирования профиля выводим сниппет:

[[!UpdateProfile?]]

Ниже выводим поля, которые нужно редактировать, шаблон также можно получить из документации к сниппету.

Выход из системы.

Для выхода из системы вам необходимо в нужном для вас месте указать ссылку:

<a class="login" href="[[~18? &service=logout]]">Выход</a>

Вместо вывода.

Мы закончили с вами разбирать авторизацию пользователей с системе под управлением CMF MODX. Надеюсь вам все понятно, и вы без труда сможете воспользоваться этим уроком.

Оставить заявку

Как связаться?

Тел: +7-910-223-20-27
Email: info@groupbw.ru
skype: litvinov.d1