# Uwierzytelnianie Digest

## Wprowadzenie

Uwierzytelnianie Digest jest metodą uwierzytelniania HTTP, która udoskonala uwierzytelnianie Basic dostarczając sposób uwierzytelniania bez konieczności przesyłania hasła w postaci czystego tekstu poprzez sieć.

Ten adapter pozwala na uwierzytelnianie w oparciu o pliki tekstowe zawierające linie, w których znajdują się podstawowe elementy uwierzytelniania digest:

- nazwa użytkownika, jak na przykład "`joe.user`"

- nazwa obszaru, jak na przykład "Administrative Area"

- skrót MD5 nazwy użytkownika, nazwy obszaru oraz hasła, oddzielonych dwukropkami

Powyższe elementy są oddzielone dwukropkami, tak jak w poniższym przykładzie (w którym hasłem jest "somePassword"):

    someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8

## Parametry

Adapter uwierzytelniania digest, `Zend_Auth_Adapter_Digest`, wymaga ustawienia kilku wejściowych parametrów:

- filename - plik na podstawie którego przeprowadzane są zapytania uwierzytelniania

- realm - obszar uwierzytelniania Digest

- username - użytkownik uwierzytelniania Digest

- password - hasło dla użytkownika danego obszaru

Te parametry muszą być ustawione przed wywołaniem metody `authenticate()`.

## Tożsamość

Adapter uwierzytelniania digest zwraca obiekt `Zend_Auth_Result`, który został wypełniony danymi tożsamości w postaci tablicy posiadajacej klucze realm oraz username. Odpowiednie wartości tablicy powiązane z tymi kluczami odpowiadają wartościom ustawionym przed wywołaniem metody `authenticate()`.

    $adapter = new Zend_Auth_Adapter_Digest($filename,
                                            $realm,
                                            $username,
                                            $password);

    $result = $adapter->authenticate();

    $identity = $result->getIdentity();

    print_r($identity);

    /*
    Array
    (
        [realm] => Some Realm
        [username] => someUser
    )
    */