본문 바로가기
PHP/라라벨-루멘

[PHP] 라라벨 루멘 로그인 middleware 사용

by 2세1의 행복한 개발 2020. 4. 22.
반응형

안녕하세요 오늘은

라라벨 루멘에서 로그인을 처리할때

router를 통하여 해당 페이지에 쉽게 로그인 검사를 하는 방법을 소개하겠습니다.

 

미들웨어란?

미들웨어는 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어

 

 

기본적으로 루멘에서는 middleware 폴더는 있지만 기능이 켜져있는지 확인하셔야합니다

/bootstrap/app.php 로 이동해서 확인해주세요

 $app->routeMiddleware([
     'auth' => App\Http\Middleware\Authenticate::class,
 ]);

없으면 추가해주세요

route에서 auth middleware를 호출하기 위하여 꼭 추가가 필요합니다.

 

다음으로는 실제로 사용할 middleware를 작성하러 갑니다

/app/Http/Middleware/Authenticate.php

해당 class가 없으면 생성해주세요. 기본적으로 있을껍니다.

public function handle($request, Closure $next, $guard = null)
{

    $session = $request->session();
    
    // 로그인 했을 떄
    if (!empty($request->session()->get('user'))) {
        return $next($request);
    } else {
        return redirect('login');
    }
}

세션을 통하여 로그인을 검사하여 원하는 곳으로 이동시킵니다

$next($request) 같은 경우는 router에서 설정한 컨트롤러를 말합니다

 

미들웨어를 작성했고 전역설정도 끝났습니다.

그렇다면 이제 router로 이동하여 적용하면 사용이 가능합니다

/routers/web.php

$router->get('/', ['middleware' => 'auth','uses' => 'DashboardController@index']);

이렇게 기본적으로 사용하던 컨트롤러 메소드를 지정하는 String에서 배열로 변경됩니다.

기본적인 router

$router->get('/login', 'Member\MembersController@login');

 

이렇게 각각의 컨트롤러에 접근하여 로그인여부를 컨트롤하는게 아닌

router에서 컨트롤 함으로써 코드의 중복을 줄일 수 있습니다.

 

이상 마무리하겠습니다~

 

댓글