Как мы можем отключить FB логин на основании некоторых условий.
Например, если время между 2 и 4 часами утра, отключите вход на Facebook (просто пример).
Моя проблема не в логике условия, я могу это применить. но моя проблема, как только условие выполнено, то как программно отключить вход в систему fb в hybridauth
заранее спасибо
Ps. Вы можете посмотреть код здесь:https://github.com/hybridauth/hybridauth
От документация мы можем увидеть эту запись;
enabled
может бытьtrue
или жеfalse
; если вы не хотите использовать определенного поставщика, установите его наfalse
Если вы откроете hybridauth/config.php
, вы увидите массив конфигурации, который содержит конфигурации для разных методов аутентификации. Что самое интересное, мы можем увидеть ключ с именем enabled
, которым мы можем манипулировать.
Мы можем изменить значение напрямую, используя троичный оператор. Например;
...
"Facebook" => array (
"enabled" => (condition ? true : false), //Ternary operator modifying `enabled` value.
"keys" => array ( "id" => "", "secret" => "" ),
"trustForwarded" => false
),
....
Однако мы можем сделать это, изменив его после загрузки конфигурации.
Если вы откроете examples/social_hub/login.php
, Вы увидите, что мы загружаем файл конфигурации и используем его. Здесь мы можем изменить это enabled
ключ.
Конфигурация хранится в переменной $config
, так;
if( condition ) {
$config['providers']['Facebook']['enabled'] = FALSE;
}
В вашем супер упрощенном примере вы можете просто добавить логику для создания массива конфигурации на лету, когда это необходимо, а затем вставить это в ваш экземпляр hybridauth. Это может быть достигнуто путем загрузки в стандартный конфигурационный массив и последующей манипуляции в соответствии с вашими правилами бизнес-логики.
Вы всегда можете расширить Hybridauth, но это кажется излишним для сравнительно простого примера, который вы привели.