>  기사  >  PHP 프레임워크  >  laravel은 미들웨어를 통해 라우팅 로그인 액세스를 어떻게 확인합니까?

laravel은 미들웨어를 통해 라우팅 로그인 액세스를 어떻게 확인합니까?

藏色散人
藏色散人앞으로
2020-07-06 13:48:294032검색

다음 튜토리얼 칼럼인 Laravel에서는 미들웨어 검증 라우팅을 통해 라라벨에 로그인하고 접속하는 방법을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

laravel은 미들웨어를 통해 라우팅 로그인 액세스를 어떻게 확인합니까?

미들웨어의 기능

미들웨어는 애플리케이션에 들어오는 HTTP 요청을 필터링하는 편리한 메커니즘을 제공합니다.
예를 들어 Laravel에는 사용자를 인증하는 미들웨어가 포함되어 있습니다. 사용자가 인증에 실패하면 미들웨어는 사용자를 로그인 페이지로 리디렉션합니다. 반면에 사용자가 검증을 통과하면 미들웨어는 해당 요청을 애플리케이션에 추가로 전달합니다.
물론 신원 확인 외에도 다른 미들웨어를 작성하여 다양한 작업을 수행할 수도 있습니다. 예: CORS 미들웨어는 애플리케이션에서 반환된 모든 응답에 적절한 응답 헤더를 추가하는 일을 담당할 수 있습니다. 로깅 미들웨어는 애플리케이션으로 들어오는 모든 요청을 기록할 수 있습니다.
Laravel에는 인증, CSRF 보호 등을 포함한 일부 미들웨어가 함께 제공됩니다. 이러한 모든 미들웨어는 app/Http/Middleware 디렉토리에 있습니다.

미들웨어 생성

//使用 make:middleware 命令来创建新的中间件。php artisan make:middleware Auth

미들웨어 등록

글로벌 미들웨어
애플리케이션이 처리하는 모든 HTTP 요청 중에 미들웨어가 실행되도록 하려는 경우. app/Http/Kernel.php의 $middleware 속성에 미들웨어를 나열하면 됩니다.
라우트에 미들웨어 할당
특정 라우트에 미들웨어를 할당하고 싶다면 먼저 app/Http/Kernel.php 파일에서 미들웨어에 키를 할당해야 합니다. 기본적으로 Laravel의 내장 미들웨어는 이 클래스의 $routeMiddleware 속성 아래에 포함되어 있습니다. 사용자 정의 미들웨어를 추가하려면 이를 목록에 추가하고 사용자 정의 키를 할당하면 됩니다. 예:

// 在 App\Http\Kernel 类中...protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,];

미들웨어 작성

public function handle($request, Closure $next)
 {
 		//通过判断session是否有用户名,判断是否登陆
       if(!session('user')){
            return redirect('/');
        }
        return $next($request);
 }

라우팅에서 미들웨어 사용

//namespace是命名空间,也就是你的controller文件在哪个文件夹里//middleware对应的就是你想调用的中间件,这里调用的是登录验证的中间件//auth就是你在App\Http\Kernel类中注册的名字Route::group(['namespace' => 'Admin', 'middleware' => ['auth']], function () {
    //后台首页
    Route::get('admin','admincontroller@index')->name('admin');
    //清除缓存路由
    Route::get('admin/clear','admincontroller@clear')->name('clear');
    //栏目资源路由
    Route::resource('admin/classify','classifycontroller');
    //公告资源路由
    Route::resource('admin/notice','classifynoticecontroller');});

이러한 방식으로 사용자가 백그라운드에서 로그인했는지 여부를 쉽게 확인할 수 있으며, 그렇지 않은 경우 자동으로 로그인 페이지로 이동할 수 있습니다. 로그인했습니다!

위 내용은 laravel은 미들웨어를 통해 라우팅 로그인 액세스를 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제