1. Go to this page and download the library: Download gabogalro/auth-library library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gabogalro / auth-library example snippets
use Exception;
use gabogalro\SQLHelpers\DB; // -> libreria para el uso de SQL
use gabogalro\Token\Token;
public function login($request)
{
try {
$user_data = [
'email' => $request['email'],
'password' => $request['password']
];
if (empty($user_data['email']) || empty($user_data['password'])) {
throw new Exception('Email y contraseña son obligatorios');
}
$result = DB::selectOne('call sp_login(?)', $user_data['email']); //-> parte de la libreria SQL
if (!empty($result)) {
$user = $result;
if (password_verify($user_data['password'], $user['password'])) {
$token = Token::generate_token($user['id_usuario']); // -> generamos el token aqui en base al id_usuario
} else {
throw new Exception('Credenciales invalidas');
}
} else {
throw new Exception('Usuario inexistente');
}
return [
'token' => $token,
'id_usuario' => $user['id_usuario']
];
} catch (Exception $ex) {
throw new Exception($ex->getMessage());
}
}
namespace app\Middlewares;
use gabogalro\Token\Token;
use app\Middlewares\Middlewares;
use Exception;
use gabogalro\responseHelpers\Response;
class AuthMiddleware implements Middlewares
{
/**
* Summary of handle
* @param mixed $requestHeaders
* @param mixed $next
*/
public static function handle($requestHeaders, $next)
{
try {
if (!isset($requestHeaders['Authorization'])) {
throw new Exception('Forbbiden');
}
$authHeader = $requestHeaders['Authorization'];
if (preg_match('/Bearer\s(\S+)/', $authHeader, $matches)) {
$token = $matches[1];
if (Token::validate_token($token)) {
return $next(); // si el token es valido da acceso
}
}
} catch (Exception $ex) {
echo Response::error('Error', $ex->getMessage(), 403);
}
}
}
public function logout($token)
{
Token::invalidate_token($token); //-> esto destruye la sesion activa del token de forma logica
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.