Личный кабинет на Sendit - не удается сбросить пароль

Здравствуйте.
Сделали ЛК на Sendit, регистрация, авторизация, редактирование профиля — все работает. Но почему-то не удается реализовать сброс пароля.

Чанк формы:
<form class="form-log" data-si-form="forgotForm" data-si-preset="forgot">
                                <div class="form-content">
                                    <fieldset class="tf-field">
                                        <label class="tf-lable fw-medium">Электронная почта</label>
                                        <input type="email" name="email" placeholder="Электронная почта*">
                                        <span class="text-error" data-si-error="email"></span>
                                    </fieldset>
                                </div>
                                <button type="submit" class="action-create-account tf-btn animate-btn">Сбросить пароль</button>
</form>
Пресет:
'forgot' => [
        'hooks' => 'Identification,FormItSaveForm,FormItAutoResponder',
        'method' => 'forgot',
        'successMessage' => 'Новый пароль отправлен на ваш email',
        'usernameField' => 'email',
        'validate' => 'email:required:userNotExists',
        'fiarSubject' => 'Восстановление пароля',
        'fiarFrom' => 'mail@mail.ru',
        'fiarTpl' => 'siResetPassEmail',
        'email.vTextRequired' => 'Укажите email.',
        'email.vTextUserNotExists' => 'Пользователь не найден',
	'activationResourceId' => 87,
	'activationUrlTime' => 3600, 
    ],
(В поле fiarFrom указан emailsender сайта.)

В шаблоне ресурса 87 вызов сниппета:
{set $result = '!PasswordReset' | snippet}
{if $result}
    <p>Ваш пароль изменен. Новый пароль: {$result.password}</p>
{/if}
Письмо со ссылкой на страницу с новым паролем на почту приходит. При переходе по ссылке открывается страница с новым паролем. НО при попытке авторизоваться с этим паролем оказывается, что он не верен, и что продолжает действовать старый пароль.

Подскажите, пожалуйста, что я делаю не так?
pandaworks
pandaworks
30 июля 2026, 15:00
modx.pro
466

Комментарии: 6

Артур Шевченко
30 июля 2026, 22:11
Есть ли ?rp= в адресе из письма. Сниппет при пустом $_GET['rp'] молча ничего не делает (snippet.resetpassword.php:3). Некоторые почтовики/антиспам-обёртки режут query-параметр. Проверьте адрес, на который реально попадаете.
    pandaworks
    31 июля 2026, 11:50
    Ссылка в письме получилась такая store.pndw.ru/sbros-parolya.html?rp=c3ZldGxhbmEuc0BwYW5kYXdvcmtzLnJ1 Новый пароль на странице отобразился такой — $2y$10$Ak8SUFmM/tOT/V/qLbdCy.Lh.NdyF51Ax2R1esUS8wFd2asTsq2/C Они ведь не должны совпадать, верно?) После этого ввожу этот новый пароль на странице авторизации — сообщение, что он неверный.
      Артур Шевченко
      31 июля 2026, 13:32
      Это не пароль, это его хэш.
      {set $result = '!PasswordReset' | snippet}
      
        {if $result && $result.extended.temp_password}
            <p>Ваш пароль изменен. Новый пароль: {$result.extended.temp_password}</p>
        {/if}
        pandaworks
        31 июля 2026, 16:03
        Хм, в массиве поле extended приходит пустым, временного пароля там нет. Сам тестовый юзер изначально был зареген в группу Users с правами доступа в личный кабинет (по обычной инструкции для таких случаев). В логах модкса ничего, что было бы с этим связано, нет.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
6