ed: conexion, auth.class y respuestas.class
conexion.php: Función para encriptar contraseña. auth.class.php: Funcion genera y retorna token y guarda en db. respuestas.class.php: Funcion error_500.
This commit is contained in:
parent
4f9ea1dbfd
commit
83d7fd1bad
12
README.md
12
README.md
@ -79,7 +79,7 @@ display_errors = On
|
|||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
### Inicio del proyecto
|
## Inicio del proyecto
|
||||||
|
|
||||||
Crear y poblar base de datos, según archivo `./original/database/apirest.sql`.
|
Crear y poblar base de datos, según archivo `./original/database/apirest.sql`.
|
||||||
|
|
||||||
@ -96,3 +96,13 @@ Crear archivo de configuración en la ruta `./<projecto>/clases/conexion/config`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Creación de token
|
||||||
|
|
||||||
|
Combinación de 2 funciones de *php* para generar un *token* único en `<proyecto>/clases/auth.class.php`
|
||||||
|
|
||||||
|
- Función [bin2hex](https://www.php.net/manual/en/function.bin2hex.php) devuelve
|
||||||
|
un `string` *hexadecimal*.
|
||||||
|
- Función [openssl_random_pseudo_bytes](https://www.php.net/manual/en/function.openssl-random-pseudo-bytes.php)
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
require_once 'conexion/conexion.php';
|
require_once 'conexion/conexion.php';
|
||||||
require_once 'respuestas.class.php';
|
require_once 'respuestas.class.php';
|
||||||
|
|
||||||
// auth hereda de conexion (solo metodos publicos)
|
// auth hereda de conexion (solo metodos public y protected)
|
||||||
class auth extends conexion{
|
class auth extends conexion{
|
||||||
|
|
||||||
public function login($json){
|
public function login($json){
|
||||||
@ -13,56 +13,61 @@ class auth extends conexion{
|
|||||||
// echo "Error parametros auth";
|
// echo "Error parametros auth";
|
||||||
return $_respuestas->error_400();
|
return $_respuestas->error_400();
|
||||||
} else {
|
} else {
|
||||||
// echo "ok";
|
|
||||||
$usuario = $datos['usuario'];
|
$usuario = $datos['usuario'];
|
||||||
$password = $datos['password'];
|
$password = $datos['password'];
|
||||||
|
$password = parent::encriptar($password);
|
||||||
$datos = $this->obtenerDatosUsuario($usuario);
|
$datos = $this->obtenerDatosUsuario($usuario);
|
||||||
if ($datos){
|
if ($datos){
|
||||||
// Usuario existe
|
// Verificar contraseña
|
||||||
//print_r($datos);
|
if ($password == $datos[0]['Password']){
|
||||||
|
if ($datos[0]['Estado'] == 'Activo'){
|
||||||
|
// Crear token
|
||||||
|
$verificar = $this->insertarToken($datos[0]['UsuarioId']);
|
||||||
|
if (!$verificar == 0){
|
||||||
|
// Guardado exitoso
|
||||||
|
$result = $_respuestas->response;
|
||||||
|
$result["result"] = array("token" => $verificar);
|
||||||
|
return $result;
|
||||||
|
} else {
|
||||||
|
return $_respuestas->error_500("Error al guardar");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $_respuestas->error_200("Usuario inactivo");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $_respuestas->error_200("Contraseña incorrecta");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Usuario no existe
|
|
||||||
//echo "Usuario no existe";
|
|
||||||
// return $_respuestas->error_400();
|
|
||||||
return $_respuestas->error_200("No existe el usuario $usuario");
|
return $_respuestas->error_200("No existe el usuario $usuario");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function obtenerDatosUsuario($correo){
|
private function obtenerDatosUsuario($correo){
|
||||||
$query = "SELECT UsuarioID,Password,Estado FROM usuarios WHERE Usuario = '$correo'";
|
$query = "SELECT UsuarioId,Password,Estado FROM usuarios WHERE Usuario = '$correo'";
|
||||||
# Llamado a método de clase padre
|
# Llamado a método de clase padre
|
||||||
$datos = parent::obtenerDatos($query);
|
$datos = parent::obtenerDatos($query);
|
||||||
if(isset($datos[0]["UsuarioID"])){
|
if(isset($datos[0]["UsuarioId"])){
|
||||||
return $datos;
|
return $datos;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function insertarToken($usuarioid){
|
||||||
|
$val = true;
|
||||||
|
$token = bin2hex(openssl_random_pseudo_bytes(16, $val));
|
||||||
|
$date = date("Y-m-d H:i");
|
||||||
|
$estado = "Activo";
|
||||||
|
$query = "INSERT INTO usuarios_token (UsuarioId, Token, Estado, Fecha)
|
||||||
|
VALUES('$usuarioid', '$token', '$estado', '$date')";
|
||||||
|
$verificar = parent::nonQuery($query);
|
||||||
|
if ($verificar){
|
||||||
|
return $token;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,8 +95,11 @@ class conexion {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Encriptar password
|
||||||
|
protected function encriptar($string){
|
||||||
|
return md5($string);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +32,16 @@ class respuestas{
|
|||||||
);
|
);
|
||||||
return $this->response;
|
return $this->response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function error_500($mensaje = "Error interno del servido"){
|
||||||
|
$this->response['status'] = "error";
|
||||||
|
$this->response['result'] = array(
|
||||||
|
"error_id" => "500",
|
||||||
|
"error_msg" => $mensaje
|
||||||
|
);
|
||||||
|
return $this->response;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Loading…
Reference in New Issue
Block a user