zend-framework - Zend_Auth_Adapter_DbTable 标识不是唯一的

标签 zend-framework authentication

为了在网站上进行身份验证,我使用 Zend_Auth_Adapter_DbTable。一切正常,但 Zend Framework 只允许在表中使用唯一标识。

作为身份,我使用用户的邮件地址。问题是,这个邮件地址在表中有更多的项目。用户可以删除那里的帐户,所以我不删除整行,我只将状态更改为 -2 或其他。活跃用户的状态为 1。

我试着像这样使用它:

    $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'user', 'email', 'password', "? AND `status`='1'");
    $authAdapter->setIdentity($email);
    $authAdapter->setCredential($password);

但它不起作用。如果我删除具有相同邮件地址的非事件用户,一切正常。这是为什么?

最佳答案

你可以这样做

$authAdapter->setIdentity($email);
$authAdapter->setCredential($password);

$select = $authAdapter->getDbSelect();
$select->where('status = 1'); 

试试这个完整的代码

 $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'user', 'email', 'password');
     $authAdapter->setIdentity($email);
    $authAdapter->setCredential($password);
    $select = $authAdapter->getDbSelect();
            $select->where('status = "1"');

$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());

       $authAdapter->setTableName('user')
            ->setIdentityColumn('email')
            ->setCredentialColumn('password');     

        $select = $authAdapter->getDbSelect();
        $select->where('status = "1"');

[编辑]
或者

$authAdapter = new Zend_Auth_Adapter_DbTable($db, 'user', 'email', 'password');
         $authAdapter->setIdentity($email);
        $authAdapter->setCredential($password);
$authAdapter->setCredentialTreatment('? and status = "1"');

仅供引用:zend.auth.adapter.dbtable

关于zend-framework - Zend_Auth_Adapter_DbTable 标识不是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10930144/

相关文章:

windows - 谷歌云控制台 : cannot login to new WIndows VM instance

python - 在 Python 中加盐和散列密码

authentication - 在 Keycloak kubernetes helm 图表中设置新的扩展

php - 我如何解释我的 zend web 应用程序的分析日志?

php - 避免在 cakephp 中与两个不同域进行 session 匹配?

authentication - 你应该如何存储访问 token ?

php - 使用具体的 Zend_Db_Table_Abstract 有效地遍历行集

zend-framework - 我应该在 Zend_Db 中的什么地方实现缓存?

zend-framework - 如何回显 doctype,在 application.ini 中设置,在 zend 框架 View 中

php - 如何计算每个视频的独特观看次数