Middleware

8/16/2021

# Description

Middleware cung cấp khả năng inspecting và filter các HTTP request.

Các middleware được khai báo trong property $middleware ở class App\Kernel.

Khi có 1 Http request đến hệ thống, request sẽ được duyệt qua Pipeline (opens new window)

mà các pipe là các middleware đã được khai báo ở trên.

# Usage:

Tạo middleware kế thừa class Nin\Libs\Middleware\Middleware có method handle($request) chứa logic xử lí request của middleware đó.

VD: VerifyCsrfToken.php


class VerifyCsrfToken extends Middleware
{
    /*...*/
    
    public function handle($request)
    {
        if (!$this->isRequestIgnoreCheck($request->getMethod())) {
            if (!$this->tokenCheck($request)) {
                throw new TokenInvalidException('Token invalid.');
            }
        }
        return parent::handle($request);
    }
    
    /*...*/
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Request được kiểm tra token để chống tấn công csrf. Trường hợp token hợp lệ sẽ đi đến xử lí của middleware tiếp theo cho đến khi hết middleware trong pipeline.

Khai báo middleware tại App\Kernel

class Kernel extends BaseKernel
{
    /**
     * Middleware list
     *
     * @var array
     */
    public array $middleware = [
        VerifyCsrfToken::class
    ];
}
1
2
3
4
5
6
7
8
9
10
11

Packagist: https://packagist.org/packages/nin/nin (opens new window)