Cita de: #!drvy en 28 Agosto 2017, 03:44 AM
La clase Exception acepta un código de error que no tiene nada que ver con el STATUS HTTP. Es decir, el hecho de que pongas 401 como segundo parámetro, no quiere decir que PHP tiene que tirar un header 401. De hecho, las excepciones no fueron pensadas para eso ni mucho menos. Fueron pensadas para que se pudiesen capturar y analizar, no que redirigan porque si.
Entonces lo que tendrias que hacer, es tirar una excepción con ese codigo (o cualquier otro..), y luego usar try/catch a la hora de ejecutar el método.Código (php,20,21,22,23,24,25,26,27,28,29,30,31) [Seleccionar]class SeguridadAuth {
public function login($credenciales){
if($credenciales['password'] !== '1234'){
throw new Exception('Usuario no autorizado', 401);
}
return true;
}
public function realizarLogin(){
$credenciales = array(
'user' => 'Juan',
'password' => '12345'
);
try {
$this->login($credenciales);
} catch(Exception $e){
if($e->getCode() == 401){
http_response_code(401);
exit;
}
}
return true;
}
http://php.net/manual/es/language.exceptions.php
http://php.net/manual/es/class.exception.php
http://php.net/manual/es/function.http-response-code.php
Saludos
Hola ! estuve leyendo bastante la documentación que pasaste !
Ya lo estoy poniendo en practica ! Genial !
del lado del front tengo mi servicio que según el tipo de error que reciba es el mensaje que muestra !
Saludos y como siempre gracias !!