Post

understanding cookie in laravel

Salam hangat sahabat sharehubid. Cookie memainkan peran penting saat berurusan dengan user session di sebuah web aplikasi. Pada article kali ini, penulis akan membahas bagaimana penggunaan cookie di laravel.

Cookie dapat dibuat oleh global cookie helper di Laravel. Dan cookie adalah sebuah instance dari Symfony\Component\HttpFoundation\Cookie. Cookie dapat kita lampirkan ke response menggunakan metode withCookie (). Cookie yang dihasilkan oleh Laravel dienkripsi sehingga tidak dapat dimodifikasi ataupun dibaca oleh klien.

Contoh penggunaanya kira - kira sebagai berikut.

// Membuat Instance Response
$response = new Illuminate\Http\Response('Hello World');

// Menggunakan "withCookie"
$response->withCookie(cookie('name', 'value', $minutes));

return $response;

Dapat dilihat pada contoh bahwa cookie memerlukan 3 parameter. Parameter pertama adalah nama cookie, kedua adalah nilainya, dan yang ketiga adalah durasi untuk berapa lama sebelum cookie tersebut dihapus.

Namun tentunya cookie juga dapat kita setting tanpa batas waktu. Contohnya dengan menggunakan method "forever" seperti berikut.

$response->withCookie(cookie()->forever('name', 'value'));

 Setelah kita set cookie, kita dapat mengambil cookie dengan method cookie(). Method ini hanya akan mengambil satu argumen yang akan menjadi nama cookie. Method cookie ini dapat kita panggil dengan menggunakan instance dari Illuminate\Http\Request seperti berikut.

//’name’ disini adalah nama dari cookie yang kita retrieve valuenya
$value = $request->cookie('name');

Selanjutnya kita akan membuat contoh lebih lanjut bagaimana menggunakan cookie di laravel dengan menggunakan sebuah Laravel. Bagi anda yang sudah mengikuti tutorial saya yang lalu, anda bisa gunakan project itu kembali ataupun dengan project laravel yang sudah pernah anda buat. Untuk anda yang belum, anda bisa buat terlebih dahulu sebuah project laravel.

Bila sudah, buatlah sebuah controller seperti berikut.

php artisan make:controller CookieController

Bila sudah berhasil, pada controller yang baru dibuat tersebut, buatlah method seperti berikut.

public function setCookie(Request $request) {
      $minutes = 1;
      $response = new Response('Hello ShareHubId');
      $response->withCookie(cookie('name', 'test_name', $minutes));
      return $response;
   }
   public function getCookie(Request $request) {
      $value = $request->cookie('name');
      echo $value;
   }

Selanjutnya pada file route anda yaitu file "web.php" pada directory routes, tambahkan code sebagai berikut.

Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');

Pada browser, input URL berikut pada address bar di web browser untuk melakukan set cookie.

http://localhost:8000/cookie/set

Dan selanjutnya gunakan URL berikut untuk mendapatkan cookie.

http://localhost:8000/cookie/get

Baiklah, sampai disini kita sudah mencoba untuk menggunakan cookie pada laravel. Sampai berjumpa kembali pada article berikutnya. Sekian yang dapat saya sampaikan, selebihnya saya ucapkan terimakasih.