PHP code example of gabogalro / auth-library

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
    }