PHP code example of latinexus / lx_auth

1. Go to this page and download the library: Download latinexus/lx_auth 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/ */

    

latinexus / lx_auth example snippets


use LxAuth\LxAuth;
use LxAuth\Drivers\Database\EloquentDriver;
use Illuminate\Database\Capsule\Manager as Capsule;

// 1. Tu app resuelve el tenant y configura la conexión a su BD
$capsule = new Capsule;
$capsule->addConnection([
    'driver'   => 'mysql',
    'host'     => '...',
    'database' => E_DB_NAM,    // 'cargo_prueba'
    'username' => E_DB_USR,    // 'cargo_prueba_usr'
    'password' => E_DB_PWD,
    'charset'  => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();

// 2. Pasar la instancia de Capsule a LX_AUTH
EloquentDriver::setCapsule($capsule);

// 3. Inicializar LX_AUTH
$auth = LxAuth::getInstance([
    'tokens' => [
        'jwt' => [
            'secret' => 'tu-clave-secreta',
        ],
    ],
]);

// Autenticar usuario
$user = $auth->authenticate([
    'email' => '[email protected]',
    'password' => 'password123'
]);

// Registrar nuevo usuario
$user = $auth->register([
    'email' => '[email protected]',
    'password' => 'password123',
    'first_name' => 'John',
    'last_name' => 'Doe'
]);

// Iniciar sesión (PHP session)
$auth->login($user, remember: true);

// Verificar sesión activa
if ($auth->check()) {
    $user = $auth->user();
}

// Cerrar sesión
$auth->logout();

// Crear token JWT
$token = $auth->createToken($user, 'api');

// Validar token
$user = $auth->validateToken($token);

// Asignar rol
$auth->assignRole($user, 'admin');

// Verificar rol
if ($auth->hasRole('admin')) {
    // Es administrador
}

// Otorgar permiso directo
$auth->givePermissionTo($user, 'users.create');

// Verificar permiso
if ($auth->can('users.create')) {
    // Puede crear usuarios
}

// Permisos con wildcards
if ($auth->can('users.*')) {
    // Puede hacer cualquier operación con usuarios
}

// Proteger rutas
$app->add($auth->middleware());                          // Auth requerido
$app->add($auth->permissionMiddleware('users.create'));  // Permiso específico
$app->add($auth->roleMiddleware('admin'));               // Rol específico

// Middleware de autenticación
$authMiddleware = $auth->middleware(['/login', '/register']);

// Middleware de permisos
$permissionMiddleware = $auth->permissionMiddleware('users.create');

// Middleware de roles
$roleMiddleware = $auth->roleMiddleware('admin');

// Middleware de tenant
$tenantMiddleware = $auth->tenantMiddleware();
bash
php migrate.php                    # SQLite (desarrollo/pruebas)
php migrate_mysql.php              # MySQL/MariaDB
php migrate_mysql.php --fresh      # Recrear tablas
php migrate_mysql.php --rollback   # Revertir