Иногда возникают случаи для использования функционала модуля в своих нестандартных случаях, для этого здесь приведено описание классов базовых и примеры использования. Все доступные методы можно посмотреть в исходниках модуля.
Основные классы для работы с модулем
Базовый класс для работ с модулем, через который происходит все взаимодействие
\Bxmaker\AuthUserEmail\Manager
Класс для работы с ограничениями для конкретных email адресов, отслеживание попыток, таймаутов, необходимости показа captcha
\Bxmaker\AuthUserEmail\Limit
Класс для работы с ограничениями для конкретных IP адресов, отслеживание попыток отправки кодов, блокировка отправки кодов, необходимость показа captcha и тп
\Bxmaker\AuthUserEmail\Ip\Limit
Базовый класс для исключений в процессе работы модуля
\Bxmaker\AuthUserEmail\Exception\BaseException
Базовая подключение модуля для взаимодействия с ним
if(\Bitrix\Main\Loader::includeModule('bxmaker.authuseremail'))
{
$oManager = \Bxmaker\AuthUserEmail\Manager::getInstance();
}
Отправка кода на указанный емэйл, код если не задан будет сгенерирован
$oManager->sendCode($email, $code = null, $bRegister = false);
$code
- если не задано, то код будет сгенерирован автоматически
bRegister
- влаг что отправляется код при регистрации, в этом случае используется другой тип почтового шаблона, который не передается ссылка для автовхода
Код можно отправить на email произвольный, а можно сгенерировать согласно настройкам модуля
$code = $oManager->generateCode();
Код можно проверить следующим образом
if($oManager->isValidCode($email, $code))
{
echo 'ok';
}
Ограничения для конкретного email адреса, приведена лишь часть доступных методов, больше в исходниках смотрите.
Важно: Прежде чем проверять что либо нужно передать email, для которого выполняются проверки
// передаем email
$oManager->limit()->setEmail($email);
//проверит вышло ли время между отправками, если нет, выбросит соответствующее исключение
$oManager->limit()->checkTimeout();
//оставшееся время ожидания
$waitTimeout = $oManager->limit()->getTimeout();
// нужно ли ожидать перед отправкой
if($oManager->limit()->isNeedWaitTimeout())
{
echo 'ok';
}
//нужно ли запрашивать кода картинки перед отправкой кода
$oManager->limit()->isNeedCaptchaBeforeSendCode();
//нужно ли запрашивать кода картинки перед проверкой кода
$oManager->limit()->isNeedCaptchaBeforeCheckCode();
//увеличение счетчика попыток отправки кода
$oManager->limit()->increaseSendAttempt();
//увеличение счетчика попыток проверки кода
$oManager->limit()->increaseCheckAttempt();
// сброс всех ограничений
$oManager->limit()->clearAttempts();
Все проверки и ограничения для текущего IP, приведена лишь часть доступных методов, больше в исходниках смотрите
//проверка ограничений, в случае наличия выбросит соответствующее исключение
$oManager->ipLimit()->check();
//нужно ли запрашивать код с картинки (captcha) перед отправкой кода
if($oManager->ipLimit()->isNeedCaptcha())
{
echo 'ok';
}
//заблокирована ли возможность запроса кода
if($oManager->ipLimit()->isNeedBlock())
{
echo 'ok';
}
//увеличение счетчика попыток отправки кода
$oManager->ipLimit()->increaseAttempt();
//сброс всех счетчиков и ограничений
$oManager->ipLimit()->clearAttempts();
Все возможны параметры можно получить используя соответсвующий метод, который вернет значение для текущего сайта.
Если нужно получить значение для другого сайта, не текущего используйте базовый метод getParam($name, $default_value = null, $siteId = null)
в который передаются параметры
$name
- код параметра, например - DEFAULT_COMPONENT
$default_value
- значение по умолчанию, если не задано значение в настройках модуля
$siteId
- идентификатор сайта, например s1, по умолчанию текущий
Приведены лишь некоторые методы, оcтальные смотрите в исходниках
//комопнент модуля подклчюаемый по умолчанию вместо стандартных
$oManager->param()->getDefaultComponent();
//длина генерируемого временного кода
$oManager->param()->getCodeLength();
//время жизни временного кода в секундах
$oManager->param()->getCodeLifeTime();