Bài giảng Phát triển phần mềm nguồn mở - Bài 14: 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.

pdf 9 trang phuongnguyen 7480
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

Tóm tắt nội dung 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ể

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.
 Image from:  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);
 }
}
➢ Nếu biến age <= 20, 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 với $request.
 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 php artisan make:middleware CheckAge
 Middleware
2. Đăng ký protected $routeMiddleware = [//, 'checkage' => 
 Middleware \App\Http\Middleware\CheckAge::class];
3. Viết xử lý class CheckAge{
 cho phương public function handle($request, Closure $next){
 thức handle() if($request->has('age') && $request['age'] >= 20)
 trong return $next($request);
 Middleware else
 return redirect()->route('error'); 
 }
 }
4. Viết các 
 Route thông Route::get ( 'age', function () {
 báo 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');
 Nhập số tuổi
 Route::get ( 'input_age', function () { 
 return view('input_age');
 } )->name('input_age');
5. View nhập 8

File đính kèm:

  • pdfbai_giang_phat_trien_phan_mem_nguon_mo_bai_14_middleware_ngu.pdf