Site

Middlewares

v4

Middlewares interceptam a requisição antes do handler. Servem para verificar login, permissões de admin, CSRF e outras regras de acesso.


Onde ficam

app/http/middlewares/
├── user_auth.php      → alias: auth:user
├── admin_auth.php     → alias: admin
└── authenticate_api.php

São descobertos automaticamente pelo middleware_registry.


Middlewares prontos

Classe / aliasFunção
user_auth / auth:userExige jogador logado
admin_auth / adminExige admin logado
authenticate_apiValida token Bearer na API

Exemplo de middleware

<?php

namespace MUCRM\http\middlewares;

use MUCRM\engine\http\middleware\middleware;
use MUCRM\engine\support\auth\auth;

class user_auth extends middleware
{
    protected string $alias = 'auth:user';

    public function handle(): bool
    {
        if (!auth::check('user')) {
            res()->to('/');
            return false;
        }
        return true;
    }
}
  • handle() retorna true para continuar ou false para bloquear
  • $alias permite usar o nome curto nas rotas: ['auth:user']

Usando nas rotas

use MUCRM\engine\support\facades\uri;
use MUCRM\http\middlewares\user_auth;

uri::group(['prefix' => 'user', 'middleware' => [user_auth::class]], function () {
    uri::get('/', [panel_handler::class, 'index'])->name('user.panel');
});

Veja também Grupos de Rotas.


Criar um middleware novo

  1. Crie um arquivo em app/http/middlewares/meu_middleware.php
  2. Estenda MUCRM\engine\http\middleware\middleware
  3. Implemente handle(): bool
  4. Defina $alias se quiser usar nome curto nas rotas
  5. Referencie na rota com a classe ou o alias