Николай Ланец
19 мар. 2013 г., 11:07

Авторизация по емейлу

Довольно много раз звучал вопрос «Как сделать так, чтобы можно было авторизовываться по емейлу?». А решение на самом деле очень простое: Создаем вот такой плагин:
<?php // Try to find by email $modx->event->_output = $modx->getObjectGraph('modUser', '{"Profile":{},"UserSettings":{}}', array ('Profile.email' => $scriptProperties['username']));
и вешаем его на событие OnUserNotFound. Все. То есть если пользователь ввел емейл, и MODX не смог его найти (так как ищет по username), то в плагине на это событие мы пытаемся найти этого пользователя по емейлу.
Только ни в коем случае нельзя делать возврат через return, так как объект Event умеет возвращать только строку. Надо именно так, как я написал.
P.S. теперь авторизация здесь возможно и по емейлу.
Супер! Когда сменили на коммюнити дизайн сразу заметил, что авторизация по e-mail не проходит и понял, что это из-за MODX)))
Нет, там авторизация по емейлу работает. Потому что там вообще нет синхронизации MODX и Livestreet пользователей (специально там сейчас перепроверил). А вот здесь синхронизация есть. Вот пришлось поправить :-)

Добавить комментарий