Как отключить вход в систему на основе некоторых условий в hybridauth

Как мы можем отключить FB логин на основании некоторых условий.
Например, если время между 2 и 4 часами утра, отключите вход на Facebook (просто пример).
Моя проблема не в логике условия, я могу это применить. но моя проблема, как только условие выполнено, то как программно отключить вход в систему fb в hybridauth

заранее спасибо

Ps. Вы можете посмотреть код здесь:https://github.com/hybridauth/hybridauth

http://hybridauth.sourceforge.net/

0

Решение

От документация мы можем увидеть эту запись;

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;
}
0

Другие решения

В вашем супер упрощенном примере вы можете просто добавить логику для создания массива конфигурации на лету, когда это необходимо, а затем вставить это в ваш экземпляр hybridauth. Это может быть достигнуто путем загрузки в стандартный конфигурационный массив и последующей манипуляции в соответствии с вашими правилами бизнес-логики.

Вы всегда можете расширить Hybridauth, но это кажется излишним для сравнительно простого примера, который вы привели.

0

По вопросам рекламы [email protected]