До сих пор я сохранил все пароли в виде простого текста, потому что сайт не в сети, и я решил дождаться нового password api.Как использовать php 5.5 password api с Zend_Auth_Adapter_DbTable
У меня есть этот код работает для паролей в виде обычного текста:
<?php
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('account')
->setIdentityColumn('account_id')
->setCredentialColumn('account_password');
// Get our authentication adapter and check credentials
$adapter = $authAdapter;
$adapter->setIdentity($values['account_id']);
$adapter->setCredential($values['password']);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
if ($result->isValid()) {
$user = $adapter->getResultRowObject();
$auth->getStorage()->write($user);
return true;
}
return false;
Согласно docs я должен реализовать свой собственный адаптер и, возможно, просто изменить, чтобы использовать password_verify().
Мне не хватает большой картины здесь, как все работает вместе.
Мой вопрос:
- объект Witch я должен изменить?
$authAdaper
или$auth
Любой высокий уровень (или низкий уровень: D), пример кода будут оценены.
Все лучшее Адам
$ adpater-> setCredential ($ hashPassword); таким образом мне нужно хранить соль отдельно в db? – adamnyberg
Мне не нужно использовать password_verify() где угодно? – adamnyberg
Если вы хотите использовать одну соль для всех паролей, вы можете определить ее в своем 'application.ini'. '$ config-> passwordSalt' - это просто строка,' $ config' является экземпляром 'Zend_Config'. – AlexP