2

ログインフォーム:

    $authAdapter    = Zend_Registry::get('authAdapter');
    $authAdapter
  ->setIdentity($formData['email'])
  ->setCredential($password)
  ->setCredential(1);

ブートストラップ:

    protected function _initAuth(){
    $this->bootstrap('db');
    $this->bootstrap('session');

    $db             = $this->getPluginResource('db')->getDbAdapter();
    $auth           = Zend_Auth::getInstance();
    $authAdapter    = new Zend_Auth_Adapter_DbTable($db, 'User', 'email', 'password', 'enabled');

    Zend_Registry::set('authAdapter', $authAdapter);
    return $authAdapter;
}

明らかに、「有効」を追加すると機能しなくなりました。削除すると、次のようになります。

->setCredential(1);

そこから「有効」にします:

($db, 'User', 'email', 'password', 'enabled');

それはうまく動作します...

ただし、有効なアカウントを持つユーザーのみがログインできるようにしたいと思います。

編集:

        $authAdapter    = new Zend_Auth_Adapter_DbTable($db, 'User', 'email', 'password', '(?) AND `enabled` = 1');

作品:)

4

3 に答える 3

1

次のようにアダプターを変更する必要があります。

$authAdapter = new Zend_Auth_Adapter_DbTable(
    $db,
    'user',
    'email',
    'password',
    'MD5(?) AND `enabled` = "true"');
于 2010-03-18T11:34:52.597 に答える
1

してみてください:

$authAdapter    = new Zend_Auth_Adapter_DbTable($db, 'User', 'email', 'password', 'AND enabled      > 1');

そして削除します:

->setCredential(1);
于 2010-03-18T11:35:51.067 に答える
0

認証アダプターで追加の条件を設定できます。

$select = $authAdapter->getDbSelect();
$select->where("isActive = ?","Active");
于 2013-02-06T07:35:04.813 に答える