Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um site onde existe um painel para o cliente se logar e ver seus dados, e também existe uma área administrativa para gerenciar o site, em ambos é necessário fazer o acesso "login", os dados são consultados em tabelas diferentes, mas uma vez que estou logado no ADMIN automaticamente me logo no SITE, e quando me logo no SITE automaticamente me logo no ADMIN, ou seja consigo me logar nos dois módulos mesmo sem ter acesso a um. Dessa forma deixando o meu SITE vulnerável, pois clientes que se logam no SITE, ficam com acesso no ADMIN ... Preciso resolver isso e não estou encontrando solução!!!
Acesso ao ADMIN
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
//Inicia o adaptador Zend_Auth para banco de dados
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('tb_usuarios')
->setIdentityColumn('login')
->setCredentialColumn('senha');
//Define os dados para processar o login
$authAdapter->setIdentity($login)
->setCredential($senha);
//Efetua o login
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
//Verifica se o login foi efetuado com sucesso
if ($result->isValid()):
//Armazena os dados do usuário em sessão, apenas desconsiderando
//a senha do usuário
$info = $authAdapter->getResultRowObject(null, 'senha');
$storage = $auth->getStorage();
$storage->write($info);
//Redireciona para o Controller protegido
$this->_redirect('admin/usuario/index');
else:
//Dados inválidos
$msg = "Login/Senha não conferem";
$this->_helper->flashMessenger->addMessage(array('success' => $msg));
$this->_redirect('admin');
endif;
endif;
}
Acesso ao SITE
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
//Inicia o adaptador Zend_Auth para banco de dados
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('tb_cadastros')
->setIdentityColumn('email')
->setCredentialColumn('senha');
//Define os dados para processar o login
$authAdapter->setIdentity($email)
->setCredential($senha);
//Efetua o login
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
//Verifica se o login foi efetuado com sucesso
if ($result->isValid()):
//Armazena os dados do usuário em sessão, apenas desconsiderando
//a senha do usuário
$info = $authAdapter->getResultRowObject(null, 'senha');
$storage = $auth->getStorage();
$storage->write($info);
$authNamespace = new Zend_Session_Namespace('Zend_Auth');
$authNamespace->user = $this->usuario->nome;
//Redireciona para o Controller protegido
$this->_redirect('cadastro/index');
else:
//Dados inválidos
$msg = "Login/Senha não conferem";
$this->_helper->flashMessenger->addMessage(array('success' => $msg));
$this->_redirect('cadastro/login');
endif;
endif;Carregando comentários...