Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Quelques lignes de code pour mettre en oeuvre une authentification simple. On admet que vous utilisez une classe dérivée de AbstractTableGateway.
User est une classe qui contient entre autre un username et un password.
class User extends DefaultModel { protected $password; public function setPassword($password) {$this->password = $password;} public function getPassword() {return (isset($this->password) ? $this->password : null);} protected $username; public function setUsername($username) {$this->username = $username;} public function getUsername() {return (isset($this->username) ? $this->username : null);} }
Pour en venir au bout de code dans UsersTable:
class UsersTable extends AbstractTableGateway { protected $table ='Users'; ... public function Authenticate(User $user) { $authAdapter = new AuthAdapter($this->adapter, $this->table,'username','password'); $authAdapter->setIdentity($user->username)->setCredential($user->password); $auth = new AuthenticationService(); $result = $auth->authenticate($authAdapter); return $result; } }
Et on l'ultilise directement avec le resultat de Auth.
/* Initialisation de $User et de TableUsers... */ $result = $usersTable->authenticate($user); if (!$result->isValid()) { // Authentication failed; print the reasons why foreach ($result->getMessages() as $message) { echo "$message\n"; } } else { // Authentication succeeded; the identity ($username) is stored // in the session // $result->getIdentity() === $auth->getIdentity() // $result->getIdentity() === $username }
Hors ligne
Pages: 1