mam aplikacje postawioną na postgresie. Hasło jest hashowane algorytmem 'sha256' i jest dodatkowo solone (kolumna 'sol' w tabeli 'uzytkownicy').
Próbuje zrobić logowanie w ten sposób:
$authAdapter = new Zend_Auth_Adapter_DbTable($mUzytkownicy->getAdapter(),'uzytkownicy'); $authAdapter->setIdentityColumn('login')->setCredentialColumn('haslo'); $authAdapter->setIdentity($data['login'])->setCredential($data['haslo']); //$authAdapter->getDbSelect()->where('status = 1'); $authAdapter->setCredentialTreatment('digit(CONCAT(?,sol), \'sha256\')'); // $authAdapter->setCredentialTreatment('? and status = 1'); //$select = $authAdapter->getDbSelect(); $result = $auth->authenticate($authAdapter);
czyli chce żeby adapter sprawdził akywnych użytkowników (status = 1) oraz połączył kolumne 'haslo' i 'sol' i hashował poprzez SHA256 i dostaje błąd
Cytat
Message: The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.
Jak powinna wyglądać metoda setCredentialTreatment?