Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Возможности
1. Активация роутинга
Для работы pbAuth необходимо включить роутинг в PageBlocks. Убедитесь, что системная настройка pageblocks_routing установлена в значение Route Only или Full API.
2. Подключение JavaScript для форм
Если вы хотите, чтобы формы авторизации и регистрации работали без перезагрузки страницы, включите настройку pageblocks_load_scripts. Это автоматически подключит необходимые скрипты, обрабатывающие отправку форм через AJAX, а также отрисовку ошибок и сообщений.
3. Вставка чанка с авторизацией
В шапку вашего сайта рекомендуется вставить один из готовых файловых чанков:
Пример подключения:
Код чанка auth.tpl:
Объяснение новых тегов:
4. Маршруты и структура
pbAuth поставляется с готовым набором маршрутов, которые регистрируются в файле core/App/routes/auth.php.
Список маршрутов:
Если вы используете чанк auth_modal, то отдельные страницы регистрации, входа и восстановления пароля можно не выводить — они будут загружаться через модальное окно.
Структура элементов аутентификации
- Аутентификация и регистрация через POST-запросы
- Сброс и смена пароля
- Профиль пользователя с возможностью редактирования данных
- Загрузка аватара
- Добавление пользователей в группы
- Валидация и отображение ошибок через Fenom
- Защита от CSRF и поддержка flash-сообщений
- Расширяемые контроллеры и шаблоны
Быстрый старт
1. Активация роутинга
Для работы pbAuth необходимо включить роутинг в PageBlocks. Убедитесь, что системная настройка pageblocks_routing установлена в значение Route Only или Full API.
2. Подключение JavaScript для форм
Если вы хотите, чтобы формы авторизации и регистрации работали без перезагрузки страницы, включите настройку pageblocks_load_scripts. Это автоматически подключит необходимые скрипты, обрабатывающие отправку форм через AJAX, а также отрисовку ошибок и сообщений.
3. Вставка чанка с авторизацией
В шапку вашего сайта рекомендуется вставить один из готовых файловых чанков:
- auth — классическая панель с кнопками входа/регистрации и отображением профиля,
- auth_modal — модальное окно (если вы хотите встроить формы без отдельных страниц).
Пример подключения:
{insert 'file:auth/chunks/auth.tpl'}Код чанка auth.tpl:
{auth}
<a href="{route 'pageProfile'}" class="d-flex align-items-center gap-2 text-dark text-decoration-none">
<div class="avatar d-flex align-items-center justify-content-center rounded-5 bg-secondary-subtle overflow-hidden" style="width:48px;height:48px">
<img src="{$modx->user->getGravatar()}" width="48" height="48" alt="{$modx->user->username}">
</div>
<div class="d-flex flex-column">
<strong>{$modx->user->username}</strong>
<span>{$modx->user->email}</span>
</div>
</a>
{/auth}
{guest}
<ul class="navbar-nav d-flex align-items-center list-unstyled mb-0">
<li class="nav-item">
<a class="btn btn-sm" href="{route 'pageLogin'}">{lang 'auth.login_title'}</a>
</li>
<li class="nav-item">
<a class="btn btn-light btn-sm" href="{route 'pageRegister'}">{lang 'auth.register_title'}</a>
</li>
</ul>
{/guest}Объяснение новых тегов:
- {auth} и {guest} — условные блоки, отображающие содержимое только для авторизованных или неавторизованных пользователей соответственно.
- {route 'имя_маршрута'} — получение ссылки по имени маршрута. Удобно при рефакторинге, чтобы не менять ссылки в шаблонах вручную.
- {lang 'ключ_лексикона'} — получение фраз из языковых файлов (например, {lang 'auth.register_title'} — ищет переменную register_title из файла App/lang/en/auth.php).
4. Маршруты и структура
pbAuth поставляется с готовым набором маршрутов, которые регистрируются в файле core/App/routes/auth.php.
// Только для неавторизованных пользователей
Route::middleware('guest')->group(function () {
Route::get('/login', 'Auth\LoginController@show')->name('pageLogin');
Route::post('/login', 'Auth\LoginController@login')->name('login');
Route::get('/register', 'Auth\RegisterController@show')->name('pageRegister');
Route::post('/register', 'Auth\RegisterController@register')->name('register');
Route::get('/forgot-password', 'Auth\ForgotPasswordController@show')->name('pageForgotPassword');
Route::post('/forgot-password', 'Auth\ForgotPasswordController@forgotPassword')->name('forgotPassword');
Route::get('/reset-password/{token}', 'Auth\ResetPasswordController@show')->name('pageResetPassword');
Route::post('/reset-password', 'Auth\ResetPasswordController@resetPassword')->name('resetPassword');
});
// Только для авторизованных
Route::middleware('auth')->group(function () {
Route::get('/confirm-password', 'Auth\ConfirmPasswordController@show')->name('pageConfirmPassword');
Route::post('/confirm-password', 'Auth\ConfirmPasswordController@confirmPassword')->name('confirmPassword');
Route::get('/profile', 'Auth\ProfileController@show')->name('pageProfile');
Route::post('/profile', 'Auth\ProfileController@updateProfile')->name('updateProfile');
Route::get('/profile/password', 'Auth\ChangePasswordController@show')->name('pageChangePassword');
Route::post('/profile/password', 'Auth\ChangePasswordController@changePassword')->name('changePassword');
Route::get('/logout', 'Auth\LoginController@logout')->name('logout');
});
// Подтверждение email
Route::get('/verify-email/{token}', 'Auth\AuthController@verifyEmail')->name('verifyEmail');Список маршрутов:
- /login — форма входа
- /register — регистрация
- /forgot-password — восстановление пароля
- /reset-password/{token} — сброс пароля
- /confirm-password — подтверждение пароля
- /profile — редактирование профиля
- /profile/password — смена пароля
- /logout — выход
- /verify-email/{token} — подтверждение email
Если вы используете чанк auth_modal, то отдельные страницы регистрации, входа и восстановления пароля можно не выводить — они будут загружаться через модальное окно.
Структура элементов аутентификации
- Контроллеры — /core/App/Http/Controllers/Auth/ Основная логика регистрации, входа, восстановления пароля и т.д.
- Шаблоны — /core/App/elements/auth/ Fenom-шаблоны форм и уведомлений, которые можно кастомизировать.
- Лексиконы (переводы) — /core/App/lang/ Переводы на разные языки для сообщений, ошибок и интерфейса.
- Маршруты — /core/App/routes/auth.php Определяют доступные URL и обрабатывающие их контроллеры.
[1.0.3-pl] - 2025-10-11
Added
- Google reCAPTCHA v3 support
- registration form validation by IP address — no more than 3 registrations per IP
Improved
usernamefield validation during registration
Requirements
- Requires PageBlocks component version 2.8.3 or higher
[1.0.2-pl] - 2025-07-05
Added
- Support for PageBlocks v2.7.3
Fixed
- File structure organization
[1.0.1-pl] - 2025-06-25
Added
- Avatar upload
- Automatic user group assignment during registration
Improved
- Form validation
Changed
- Request import to Http\Request
[1.0.0-pl] - 2025-06-16
- First release


Последние обсуждения в сообществе MODX.pro