Bài giảng Phát triển phần mềm nguồn mở - Bài 14: Middleware - Nguyễn Hữu Thể

PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ  
Middleware  
Nguyễn Hữu Thể  
Middleware  
− Bộ lọc: Trung gian giữa request và response  
➢ Ví dụ: Xác nhận người dùng đã xác thực chưa, nếu người  
dùng đã qua xác thực sẽ được chuyển hướng.  
2
Tạo Middleware  
− Để tạo mới một middleware, sử dụng lệnh  
make:middleware  
❖ Ví dụ:  
php artisan make:middleware CheckAge  
✓Câu lệnh này sẽ tạo ra class CheckAge bên trong thư mục  
app/Http/Middleware.  
✓Trong middleware này, chúng ta chỉ cho phép truy cập vào  
route nếu giá trị age lớn hơn 200. Ngược lại, chúng ta sẽ  
chuyển hướng request lại trang home URI.  
3
Middleware – Ví dụ: CheckAge  
namespace App\Http\Middleware;  
use Closure;  
class CheckAge{  
public function handle($request, Closure $next){  
if ($request->age <= 20) {  
return redirect('home');  
}
return $next($request);  
}
}
age  
20  
➢
➢
➢
Nếu biến  
, middleware sẽ trả về một HTTP tới client;  
<=  
Ngược lại, request sẽ được gửi tiếp để xử lý.  
Để truyền request vào sâu hơn trong ứng dụng (cho phép middleware "vượt  
qua"), gọi callback  
$next  
$request  
với  
.
4
Đăng ký Middleware  
❖ Global Middleware  
Thêm tên class của middleware trong thuộc tính $middleware của class  
app/Http/Kernel.php  
❖ Đăng ký Middleware vào Routes  
Gán middleware cho route cụ thể: Thêm middleware vào thuộc tính  
$routeMiddleware trong file app/Http/Kernel.php  
protected $routeMiddleware = [  
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,  
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,  
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,  
'can' => \Illuminate\Auth\Middleware\Authorize::class,  
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,  
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,  
'checkage' => \App\Http\Middleware\CheckAge::class,  
];  
5
Gán Middleware  
Khi middleware đã được định nghĩa trong HTTP kernel => sử  
dụng phương thức middleware gán cho một route:  
Route::get('/', function () {  
//  
})->middleware('first', 'second');  
Ví dụ:  
// Middleware  
Route::get ( 'age', function () {  
echo "Bạn đã nhập tuổi";  
} )->middleware('checkage');//truyền vào định danh đã khai báo  
trong Kernel  
Route::get ( 'no_age', function () {  
echo "Vui lòng nhập lại tuổi";  
} )->name('error');  
6
CÁC BƯỚC THIẾT LẬP MIDDLEWARE  
1. Lệnh tạo Middleware  
2. Đăng ký Middleware  
3. Viết xử lý cho phương thức handle() trong Middleware  
4. Viết các Route thông báo  
5. View nhập…  
7
1. Lệnh tạo  
Middleware  
2. Đăng ký  
Middleware  
php artisan make:middleware CheckAge  
protected $routeMiddleware = [//…, 'checkage' =>  
\App\Http\Middleware\CheckAge::class];  
3. Viết xử lý  
cho phương  
thức handle()  
trong  
class CheckAge{  
public function handle($request, Closure $next){  
if($request->has('age') && $request['age'] >= 20)  
return $next($request);  
else  
Middleware  
return redirect()->route('error');  
}
}
4. Viết các  
Route thông  
báo  
Route::get ( 'age', function () {  
echo "Bạn đã nhập tuổi";  
} )->middleware('checkage');//định danh khai báo trong Kernel  
Route::get ( 'no_age', function () {  
echo "Vui lòng nhập lại tuổi";  
} )->name('error');  
<h2>Nhập số tuổi</h2>  
<form action = "age" method = "get">  
<input type="number" name="age">  
<input type="submit">  
</form>  
Route::get ( 'input_age', function () {  
return view('input_age');  
} )->name('input_age');  
5. View nhập…  
pdf 9 trang yennguyen 21880 Free
Bạn đang xem tài liệu "Bài giảng Phát triển phần mềm nguồn mở - Bài 14: Middleware - Nguyễn Hữu Thể", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phat_trien_phan_mem_nguon_mo_bai_14_middleware_ngu.pdf