Ho appena creato la mia prima app utilizzando Zend_Authenticate. Secondo alcuni tutorial che ho letto, memorizzano la colonna "email" dell'utente. È raccomandato? Ho letto per memorizzare solo l'ID, quindi su ogni richiesta recuperare l'utente per ID. In questo modo, solo l'ID viene memorizzato nella sessione. È consigliato anche con Zend?
Comunque qui è la mia gestione del login utente, apprezzerei qualsiasi feedback. Fondamentalmente sto autenticando. Se ciò è passato, memorizzo l'ID nella memoria di autenticazione e un messaggio flash personalizzato. Lo script quindi reindirizza alla homepage (in cui il modulo di accesso verrà sostituito con un pannello utente, ad esempio "Bentornato John", e verrà visualizzato il mio messaggio flash.
Di seguito è riportato il mio metodo loginAction:
public function loginAction()
{
$form = new LoginForm();
$form->get('submit')->setValue('Login');
$request = $this->getRequest();
if ($request->isPost()) {
// check the users credentials and authenticate
$this->getAuthService()
->getAdapter()
->setIdentity($request->getPost('email'))
->setCredential($request->getPost('password'));
$result = $this->getAuthService()->authenticate();
if ($result->isValid()) {
// set the user id in storage
$resultRow = $this->getAuthService()->getAdapter()->getResultRowObject();
$this->getAuthService()->getStorage()->write($resultRow->id);
// set flash messenger
$this->flashMessenger()->addMessage('You are now logged in');
// redirect to the home page
return $this->redirect()->toUrl('/');
}
}
return new ViewModel(array(
'form' => $form,
));
}
}