Project/Laravel

5. 미드웨어, 세션

smartlittlepuppy 2022. 7. 19. 15:23
반응형

미들웨어

1 미들웨어를 만든다

PS C:\xampp\htdocs\laravelShopping\laravel8> php artisan make:middleware CheckUser
Middleware created successfully.

 

2. Http > Middleware하단에 CheckUser.php라는 파일이 생성되었다. 

3. Kernel.php

하단에 아래와 같이,'checkUser' => \App\Http\Middleware\CheckUser::class,한 줄 추가시킨다.

   protected $routeMiddleware = [
        'checkUser' => \App\Http\Middleware\CheckUser::class,
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
    ];

이렇게하면 checkUser라는 미들웨어를 라우팅에 넣어서 사용이 가능하다.

Route::get('/login', [LoginController::class, 'index'])->name('login.index')->middleware(('checkUser'));

이렇게 하면, /login페이지에는 미들웨어  checkUser가 적용이된다. 


세션

PS C:\xampp\htdocs\laravelShopping\laravel8> php artisan make:controller SessionController
Controller created successfully.

 

SessionController.php

class SessionController extends Controller
{
    //
    public function getSessionData(Request $request){
        if($request->session()->has('name')){
            echo $request->session()->get('name'); 
        } else {
            echo "No Data in the session";
        }
    }

    public function storeSessionData(Request $request){
        $request->session()->put('name', 'Jennifer');
        echo "Data has been added to the session"; 
    }

    public function deleteSessionData(Request $request){
        $request->session()->forget('name');
        echo "Data has been removed from the session";
    }

}

web.php

Route::get('/session/get', [SessionController::class, 'getSessionData'])->name('session.get');
Route::get('/session/set', [SessionController::class, 'storeSessionData'])->name('session.store');
Route::get('/session/remove', [SessionController::class, 'deleteSessionData'])->name('session.delete');
반응형

'Project > Laravel' 카테고리의 다른 글

라라벨설치  (0) 2024.04.26
6.DB연결, 테이블생성 및 데이타 불러오기  (0) 2022.07.19
4. Http requests and Html Form 작성  (0) 2022.07.19
3.HTTP CLIENT를 사용해서 CRUD 만들기  (0) 2022.07.19
2.라라벨 컴포넌트  (0) 2022.07.18