La clase Auth proporciona funcionalidades para la autenticación y autorización de usuarios en la aplicación.
Este método se encarga de autenticar a un usuario con su nombre de usuario y contraseña.
Parámetros:
$username: String - El nombre de usuario del usuario que intenta iniciar sesión.$password: String - La contraseña del usuario.Retorno:
boolean: Devuelve true si la autenticación es exitosa, false en caso contrario.Ejemplo de uso:
//revise el controlador login para ver su implementación
$auth = new Auth("User", "check");
if ($auth->login($username, $password)) {
// Autenticación exitosa
} else {
// Autenticación fallida
}
El método login ejecuta la clase y el metodo pasados como parámetros en el constructor de la clase Auth. En el ejemplo anterior se utiliza el modelo User y el método check para autenticar al usuario, los que se ven implementados a continuación:
class User extends Model
{
public function check($username, $password)
{
$user = $this->findFirst('WHERE username = :username', [':username' => $username]);
if ($user && password_verify($password, $user->password)) {
return $user;
}
return false;
}
}
Para finalizar la explicación, el modelo User hace uso de una tabla llamada user, cuya definición se ve a continuación:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
Este método cierra la sesión del usuario actual.
Verifica si hay un usuario autenticado actualmente.
Retorno:
boolean: true si hay un usuario autenticado, false en caso contrario.Ejemplo de uso:
class AdminController extends Controller
{
/**
* Método que se ejecuta antes de cualquier acción del controlador
* Si el usuario no está autenticado, redirige a la página de login
*/
protected function beforeFilter()
{
if (!Auth::isLogged()) {
$this->redirect('login');
}
}
}
Obtiene la información del usuario actualmente autenticado.
Retorno:
User|null: Retorna un objeto User si hay un usuario autenticado, o null si no lo hay.isLoggedIn() para implementar control de acceso.logout() cuando el usuario desee cerrar sesión.