Nhảy tới nội dung
Phiên bản: 7.3.0

Middleware

Middleware cung cấp một giải pháp khá tiện ích cho việc filtering HTTP các requests trong ứng dụng của bạn. Ví dụ, CMS có chứa một middleware xác thực user đăng nhập vào ứng dụng của bạn được chứng thực

Khởi Tạo Middleware

Để tạo một middleware mới, bạn sử dụng lệnh make:middleware Devtool command:

make:middleware TokenIsValid

command này sẽ tạo một class TokenIsValid mới trong thư mục middleware của bạn. Trong middleware này, chúng tôi sẽ chỉ cho phép truy cập nếu token được cung cấp khớp với một giá trị được chỉ định. Nếu không, chúng tôi sẽ chuyển hướng người dùng quay lại URI /home:

<?php

namespace SkillDo\Middleware;

use Closure;
use SkillDo\Http\Request;

class TokenIsValid
{
/**
* Handle an incoming request.
*/
public function handle(Request $request)
{
if ($request->input('token') !== 'my-secret-token') {
return redirect('/');
}
}
}

Global Middleware

Nếu bạn muốn gán Middleware cho toàn bộ route:

use SkillDo\Middleware\TokenIsValid;

Route::middleware(TokenIsValid::class);
Route::middleware(TokenIsValid::class, 'pre_controller'); // chạy trước khi controller được tạo
Route::middleware(TokenIsValid::class, 'controller'); // chạy sau khi controller được tạo

Gán Middleware cho Routes

Nếu bạn muốn gán Middleware cho các route cụ thể, bạn có thể gọi phương thức middleware:

use SkillDo\Middleware\TokenIsValid;

Route::get('/profile', function () {
// ...
})->middleware(TokenIsValid::class);

Nếu bạn muốn gán Middleware cho một nhóm route:

use SkillDo\Middleware\TokenIsValid;

Route::middleware(TokenIsValid::class)->group(function () {
//...
});

Route::middleware(TokenIsValid::class)->prefix('admin')->group(function () {
//...
});