Экземпляры драйвера входа в систему Fuelphp Stacking

Моя конфигурация аутентификации выглядит так:

return array(
    'driver' => array('Tokendriver', 'Apidriver'),
    'verify_multiple_logins' => true,
);

Оба эти драйвера являются пользовательскими.

Каков наилучший способ использовать verify_multiple_logins, чтобы позволить этим драйверам «стекаться», то есть, если Tokendriver не работает, я хочу попытаться проверить с помощью Apidriver.

Мой текущий метод:

    $auth = \Auth::instance('Tokendriver');

    if (!$auth->login())
        $auth = \Auth::instance('Apidriver');

    if ($auth->login())
    {
        // do login stuff
    }

но это не оптимально. Я хотел бы иметь возможность добавлять больше драйверов входа в систему и не обновлять свои контроллеры.


person willoller    schedule 15.10.2013    source источник


Ответы (1)


В текущей кодовой базе login() — это метод драйвера входа в систему, в классе Auth нет глобального кода, который занимался бы этим на данный момент.

Пожалуйста, добавьте запрос функции для этого на https://github.com/fuel/auth/issues. или отправьте PR с реализацией.

person WanWizard    schedule 20.10.2013
comment
В документации рекомендуется использовать \Auth::instance()->login() (fuelphp.com/docs/packages/auth/ examples/auth.html), что я и пытаюсь здесь сделать. Ваш комментарий имеет смысл, но не совсем по делу; это verify_multiple_logins отказоустойчивость/стекирование, которое я ищу. Есть ли фундаментальная проблема в том, как я это делаю? - person willoller; 21.10.2013