[Office] Версия 1.4.0 - работа с мобильными
Привет, друзья!
Как кто-то возможно помнит, в январе я рассказывал про создание сайта vrmedia.tv, на котором использовалась авторизация через мобильные телефоны. Тогда я написал для этого отдельный контроллер и много чего захардкодил.
И вот, спустя почти год, наконец-то дошли руки включить этот функционал в базовую поставку Office.
Теперь у нас есть новая системная настройка office_auth_mode, которая может быть в двух положениях: email или phone.
При переключении настройки в режим телефона email становится не нужен: регистрация, авторизация и сброс пароля работают через отправку sms сообщений.
Следующая системная настройка, которая вам пригодится — указание класса работы с sms office_sms_provider. По умолчанию доступны SmsRu и ByteHand. Выбор сервисов обусловлен очень просто — именно с ними я уже работал, никаких предпочтений нет.
Для работы провайдеров используются следующие системные настройки
Кстати говоря, вы сможете использовать этого провайдера для любой другой произвольной работы вот так:
Если вы обновляете уже работающий проект, то помимо системных настроек вам нужно изменить и чанки:
— Весь код и чанки отформатированы в PSR-2. Потихоньку привожу все свои дополнения к единому стандарту.
— Убрано автоматическое подключение jQuery, многие на него ругались.
— Доработаны чанки активации email и телефонов — теперь они мультиязычные.
— HybridAuth больше не устанавливается вместе с Office автоматически. Во-первых, он не всем нужен, а во-вторых мне надоело объяснять, что на него поддержка платных дополнений не распространяется.
— Ошибки авторизации теперь логируются на уровне INFO вместо ERROR, а то уже все логи забиты неудачными попытками входа.
В связи с добавлением нового функционала, цена на Office поднялась на 500 руб., до 1990 руб. Обновление со старых версий, как и всегда — бесплатное.
Для демонстрации нового функционала я временно (пока есть деньги на счёте sms.ru) включил его здесь, на modx.pro.
Заходите в личный кабинет и указывайте свой номер телефона — вам придёт sms с кодом подтверждения. Как только подтвердите свой телефон, можно будет использовать его для входа и сброса пароля.
Обновляемся, пишем отзывы.
Как кто-то возможно помнит, в январе я рассказывал про создание сайта vrmedia.tv, на котором использовалась авторизация через мобильные телефоны. Тогда я написал для этого отдельный контроллер и много чего захардкодил.
И вот, спустя почти год, наконец-то дошли руки включить этот функционал в базовую поставку Office.
Теперь у нас есть новая системная настройка office_auth_mode, которая может быть в двух положениях: email или phone.
При переключении настройки в режим телефона email становится не нужен: регистрация, авторизация и сброс пароля работают через отправку sms сообщений.
Провайдеры
Следующая системная настройка, которая вам пригодится — указание класса работы с sms office_sms_provider. По умолчанию доступны SmsRu и ByteHand. Выбор сервисов обусловлен очень просто — именно с ними я уже работал, никаких предпочтений нет.
Для работы провайдеров используются следующие системные настройки
- office_sms_id — идентификатор клиента на сервисе.
- office_sms_key — ключ клиента на сервисе, для SmsRu не нужен.
- office_sms_from — текстовое обозначение отправителя, его нужно согласовывать с сервисом.
<?php
class MyProvider {
function __construct(modX $modx, array $config = array()) {
$this->modx = &$modx;
}
function send($phone, $text) {
// Получаем системные настройки для работы и шлём сообщение
return true; // или текст ошибки
}
}
Ну и указать MyProvider в настройке office_sms_provider.Кстати говоря, вы сможете использовать этого провайдера для любой другой произвольной работы вот так:
$provider = $modx->getOption('office_sms_provider');
if ($service = $modx->getService($provider, $provider, MODX_CORE_PATH . 'components/office/model/sms/')) {
$send = $service->send('79234778899', 'Приветик!');
return $send === true
? 'Сообщение отправлено!'
: 'Ошибка при отправке сообщения: ' . $send;
}
}
Вот так просто.Обновление
Если вы обновляете уже работающий проект, то помимо системных настроек вам нужно изменить и чанки:
- В формах авторизации, регистрации и редактирования профиля нужно добавить поля с mobilephone и phone_code.
- В почтовых уведомлениях нужно добавить проверку плейсхолдера [[+code]] и если он есть — выводить текст для телефонов, а не почты.
Другие изменения
— Весь код и чанки отформатированы в PSR-2. Потихоньку привожу все свои дополнения к единому стандарту.
— Убрано автоматическое подключение jQuery, многие на него ругались.
— Доработаны чанки активации email и телефонов — теперь они мультиязычные.
— HybridAuth больше не устанавливается вместе с Office автоматически. Во-первых, он не всем нужен, а во-вторых мне надоело объяснять, что на него поддержка платных дополнений не распространяется.
— Ошибки авторизации теперь логируются на уровне INFO вместо ERROR, а то уже все логи забиты неудачными попытками входа.
Заключение
В связи с добавлением нового функционала, цена на Office поднялась на 500 руб., до 1990 руб. Обновление со старых версий, как и всегда — бесплатное.
Для демонстрации нового функционала я временно (пока есть деньги на счёте sms.ru) включил его здесь, на modx.pro.
Заходите в личный кабинет и указывайте свой номер телефона — вам придёт sms с кодом подтверждения. Как только подтвердите свой телефон, можно будет использовать его для входа и сброса пароля.
Обновляемся, пишем отзывы.
Комментарии: 5
Спасибо за развитие компонента!
Особенно обрадовало это:
Особенно обрадовало это:
Кстати говоря, вы сможете использовать этого провайдера для любой другой произвольной работы
Ошибки авторизации теперь логируются на уровне INFO вместо ERROR, а то уже все логи забиты неудачными попытками входа.За это отдельное спасибо!
Наконец-то, я этого ждал)
Скажите, предусмотрена ли возможность выбора способа регистрации (email или номер) самим пользователем в момент регистрации? Или необходимо редактировать исходники?
Нет, не предусмотрена.
Это решать только администрации сайта.
Это решать только администрации сайта.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.