Zend Framework — HTTP-авторизация

    Сейчас я покажу как можно организовать http-авторизацию в ZF. Т.к. на офсайте в мане ниче путного по этому поводу не сказано, то я пожалуй покажу людям как не переворачивая исходники Zend'а ее реализовать.
    Итак-с, наш код:
    require_once "Zend/Auth.php";
    $config = array(
    'accept_schemes' => 'digest', //используем дайджест(md5)-аутентификацию
    'realm' => 'My Web Site',
    'digest_domains' => '/zf/index/digest',//список URI для которых справедлива данная аутентификация
    'nonce_timeout' => 3600,//таймаут
    );
    require_once 'Zend/Auth/Adapter/Http.php';
    $adapter = new Zend_Auth_Adapter_Http($config);

    //создаем резольвер
    require_once 'Zend/Auth/Adapter/Http/Resolver/File.php';
    $digestResolver = new Zend_Auth_Adapter_Http_Resolver_File();
    //будем брать аутентификационную инфу из файла
    $digestResolver->setFile('realm');

    $adapter->setDigestResolver($digestResolver);

    //отправляем запрос из фронт-контроллера
    $adapter->setRequest(Zend_Controller_Front::getInstance()->getRequest());
    //получаем обратно в адаптер
    $adapter->setResponse($this->getResponse());

    //производим аутентификацию...
    $result = Zend_Auth::getInstance()->authenticate($adapter);
    //проверяем на вшивость...
    if (!$result->isValid()) {
    echo "baaad";
    }


    Думаю тут все ясно, а если не все, то посетите мануал.
    Поделиться публикацией

    Комментарии 11

      –1
      не сказано? та шо вы мне такое говрите...

      имхо грузить фремворк зенда для такой банальной задачи... ну я еще пойму если Люцену использовать, но на авторизацию заюзать...
      фрейворки стоит использовать лишь в случае если вы на нем полностью сайты делаете, а не для банальной задачи...
        0
        1. еще раз прочитайте название темы. при чем здесь php.net? ))) мы вообще-то о ZF говорим.
        2. я показал как правильно реализовать аутентификацию в ZF, так как для правильной ее реализации необходимо знать как работает фронт-контроллер (http://framework.zend.com/manual/ru/zend…).
        3. а сайт и строится из вот таких банальных задач.
        0
        Показал так показал. Ваш исходный код без единого комментария проще "переворачивать", чем исходники ZF?
        Тема полезная, сам пост абсолютно нет.
          +1
          каменты добавил
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            щас пока разбираюсь с Zend'ом. как соберу че-нить интересное - сделаю топик.

            ЗЫ А вообще зендовцы молодцы! Они очень продуманно сделали ман. там в объяснение к тексту приведены не готовые примеры кода, а всего лишь шаблоны (идеи) :)... т.е. без оч хорошего знания пхп5 там делать нечего. ;)
            +1
            я бы сначала для данного кода вызвал:

            require_once 'Zend/Loader.php';
            Zend_Loader::registerAutoload();


            а потом бы уже дальше пошел плясать с бубном...
              0
              +1. оч даже согласен. :)
                –1
                Существует много аргументов против autoload. Я лично решил от него отказаться.
                  0
                  необязательно. если функция вызвана из контроллера, то можно не вставлять первую строку.
                  0
                  С другой стороны мне, недавно столкнувшимуся я фрэймворками и именно Zend наглядно показали интересующий меня топик.
                  Чем плохо?

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

                  Самое читаемое