Laravel에서 미들웨어는 애플리케이션으로 들어오는 요청과 클라이언트로 반환되는 응답 사이의 프로세스를 처리하는 매우 실용적이고 중요한 기능입니다. 이러한 프로세스 중에 사용자 권한 확인, 사용자 인증 등 사용자에 대한 작업을 수행해야 할 수도 있습니다. 사용자가 확인에 실패하면 사용자를 다른 페이지로 리디렉션해야 할 수도 있습니다. 이번 글에서는 미들웨어 점프를 구현하기 위해 라라벨에서 미들웨어를 작성하는 방법을 소개하겠습니다.
1. 미들웨어 생성
1단계: 터미널을 열고 Laravel의 Artisan 명령을 사용하여 미들웨어를 생성합니다:
php artisan make:middleware <middleware-name>
예:
php artisan make:middleware EnsureUserIsAdmin
2단계: app/Http/Middleware 디렉토리에 새 미들웨어 생성 UserIsAdmin을 확인하세요. 이 미들웨어는 현재 사용자가 이미 로그인되어 있는지, 사용자에게 관리자 권한이 있는지 확인합니다.
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class EnsureUserIsAdmin { public function handle(Request $request, Closure $next){ if (!auth()->check() || !auth()->user()->is_admin) { return redirect('home'); } return $next($request); } }
위 코드에서는 먼저 auth() 함수를 사용하여 현재 사용자가 로그인되어 있는지 확인합니다. 사용자가 로그인하지 않은 경우 이 미들웨어는 홈페이지로 리디렉션됩니다. 사용자가 이미 로그인되어 있는 경우 해당 사용자에게 관리자 권한이 있는지 확인하십시오. 사용자에게 관리자 권한이 없으면 미들웨어가 홈 페이지로 리디렉션됩니다. 그렇지 않으면 미들웨어가 요청 진행을 허용합니다.
2. 미들웨어 사용
1단계: app/Http/Kernel.php 파일에서 $middlewareGroups 배열을 찾습니다. 이 배열에는 애플리케이션을 통해 전달되어야 하는 미들웨어 그룹이 포함되어 있습니다.
protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ // ... ], ];
2단계: 위의 $middlewareGroups 배열에서 다음과 같이 새 미들웨어에 대한 그룹을 지정합니다.
'admin' => [ \App\Http\Middleware\EnsureUserIsAdmin::class, ],
위 코드에서는 admin을 미들웨어 그룹의 이름으로 사용하고 있으며 수행한 작업도 수행했습니다. 1단계에서 생성된 미들웨어의 이름: EnacheUserIsAdmin.
3단계: 미들웨어 자체를 생성하고 사용할 위치를 지정했으므로 이제 라우터에서 미들웨어를 사용해야 합니다. Routes/web.php 파일을 열고 아래와 같이 경로가 admin 미들웨어 그룹을 사용하도록 지정합니다.
Route::get('admin/users', 'Admin\UserController@index')->middleware('admin');
위 경로 정의에서는 admin이라는 미들웨어 그룹 이름을 사용하여 AdminUserController@index에 액세스하는 페이지를 보호합니다.
3. 미들웨어 테스트
마지막으로 개발 서버를 시작하고 새 미들웨어를 테스트합니다. 애플리케이션 관리자 제어판의 페이지를 방문하세요. 관리자 권한이 없으면 홈 페이지로 리디렉션됩니다.
이 글은 Laravel 5.7 버전에서 미들웨어 점프를 구현하기 위해 미들웨어를 생성하는 방법을 보여줍니다. 다른 버전에서는 약간 다를 수 있습니다.
Summary
미들웨어는 Laravel 프레임워크에서 매우 유용한 기능으로, 사용자가 쉽게 작동하고 미들웨어 점프를 구현할 수 있습니다. 이 글에서는 미들웨어를 생성하고 사용하는 방법과 미들웨어를 사용하여 특정 페이지나 리소스를 보호하는 방법을 다루었습니다. 애플리케이션의 보안을 강화하려는 개발자에게 미들웨어는 이러한 목표를 달성하기 위한 훌륭한 도구입니다.
위 내용은 미들웨어 점프를 구현하기 위해 laravel에서 미들웨어를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!