谁能告诉我什么是使用下面的语句中,以及如何在Zend框架的工作?
setCredentialTreatment( 'SHA1(CONCAT(?,
salt
))');
谁能告诉我什么是使用下面的语句中,以及如何在Zend框架的工作?
setCredentialTreatment( 'SHA1(CONCAT(?,
salt
))');
尝试这样的:
$auth = Zend_Auth::getInstance();
$authAdapter = new Zend_Auth_Adapter_DbTable(
Zend_Db_Table::getDefaultAdapter(),
'users',
'username',
'password',
"CONCAT('$this->_salt', sha(?))"
);
$authAdapter->setIdentity($username)
->setCredential($password);
setCredentialTreatment
告诉AUTH适配器如何对一个数据库(或任何密码被再次检查)检查用户提供的密码。 在您的例子中, ?
是表示密码和占位符CONCAT()
和SHA1()
均为数据库功能。 所以这个例子将盐添加到用户输入的密码,然后使用SHA1哈希他们。
这将导致数据库查询,看起来类似于这样:
SELECT ID FROM用户WHERE电子邮件= 'user@example.com' 和密码= SHA1(CONCAT( '密码',盐))
您可以使用setCredentialTreatment()
来更改密码是如何检查。 例如,如果您的密码只是直MD5哈希值,你会改用:
setCredentialTreatment('MD5(?)');