Artikel

Apa sesi di Laravel, konfigurasi dan gunakan dengan contoh

Sesi Laravel memungkinkan Anda menyimpan informasi, dan menukarnya di antara permintaan di aplikasi web Anda. 

Mereka adalah cara mudah untuk menyimpan data untuk pengguna saat ini. Tutorial ini akan memberi Anda dasar-dasar bekerja dengan sesi di Laravel.

Apa itu sesi Laravel

Di Laravel, sesi adalah cara untuk menyimpan informasi, untuk menangani permintaan yang dibuat oleh pengguna dengan benar. Saat pengguna memulai aplikasi Laravel, sesi secara otomatis dimulai untuk pengguna tersebut. Data sesi disimpan di server dan cookie kecil dengan pengidentifikasi unik dikirim ke browser pengguna untuk mengidentifikasi sesi.

Anda dapat menggunakan sesi untuk menyimpan data yang ingin Anda gunakan di beberapa halaman atau permintaan. Misalnya, Anda mungkin menggunakan sesi untuk autentikasi pengguna atau menyimpan informasi lain yang ingin Anda gunakan selama sesi di aplikasi Anda.

Konfigurasi sesi di Laravel

Untuk menggunakan sesi di Laravel, Anda harus mengaktifkannya terlebih dahulu di file config/session.php konfigurasi. Dalam file ini dimungkinkan untuk mengatur parameter konfigurasi yang terkait dengan sesi. Misalnya durasi sesi, driver yang digunakan untuk menyimpan data sesi, dan lokasi penyimpanan data sesi. 

File tersebut memiliki opsi konfigurasi berikut:
  • pengemudi: Menentukan driver pra sesidefisiap digunakan. Laravel mendukung beberapa driver sesi: file, cookie, database, apc, memcached, redis, dynamodb, dan array;
  • seumur hidup: Menentukan jumlah menit di mana sesi harus dianggap valid;
  • expired_on_close: Jika disetel ke true, sesi akan kedaluwarsa saat browser pengguna ditutup;
  • mengenkripsi: true berarti framework akan mengenkripsi data sesi sebelum disimpan;
  • arsip: Jika driver sesi file digunakan, opsi ini menentukan lokasi penyimpanan file;
  • koneksi: Jika driver sesi database digunakan, opsi ini menentukan koneksi database yang akan digunakan;
  • tabel: Jika driver sesi database digunakan, opsi ini menentukan tabel database yang akan digunakan untuk menyimpan data sesi;
  • lotere: Array nilai yang digunakan untuk memilih nilai cookie ID sesi secara acak;
  • kue: Opsi ini menentukan nama cookie yang akan digunakan untuk menyimpan ID sesi. Opsi path, domain, secure, http_only dan same_site digunakan untuk mengonfigurasi pengaturan cookie untuk sesi tersebut.

Di bawah ini adalah contoh file sessions.php dengan durasi sesi 120 detik, penggunaan file disimpan dalam direktori framework/sessions:

<?php

use Illuminate\Support\Str;

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE'),
    'http_only' => true,

    'same_site' => 'lax',

];

Anda juga dapat mengonfigurasi sesi menggunakan variabel lingkungan dalam file .env. Misalnya, untuk menggunakan driver sesi database dan menyimpan data sesi dalam tabel sesi, dengan DB tipe MySQL, Anda dapat mengatur variabel lingkungan berikut:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

Pengaturan sesi Laravel

Ada tiga cara untuk bekerja dengan data sesi di Laravel: 

  • menggunakanhelper dari global session;
  • menggunakan fasad Sesi;
  • melalui satu Request instance

Dalam semua kasus ini, data yang Anda simpan di sesi akan tersedia dalam permintaan selanjutnya yang dibuat oleh pengguna yang sama hingga sesi berakhir atau dihancurkan secara manual.

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Pembantu Sesi Global

Di Laravel, menggunakan fungsi Global Session Helper ini adalah cara mudah untuk mengakses layanan sesi yang disediakan oleh framework. Ini memungkinkan Anda untuk menyimpan dan mengambil data dari sesi di aplikasi Anda. Berikut adalah contoh cara menggunakan session helper:

// Store data in the session
session(['key' => 'value']);

// Retrieve data from the session
$value = session('key');

// Remove data from the session
session()->forget('key');

// Clearing the Entire Session
session()->flush();

Anda juga dapat memberikan nilai awaldefinite sebagai argumen kedua untuk fungsi tersebut session, yang akan dikembalikan jika kunci yang ditentukan tidak ditemukan di sesi:

$value = session('key', 'default');

Contoh Session Request

Di Laravel, instance permintaan sesi mengacu pada objek yang mewakili permintaan HTTP dan berisi informasi tentang permintaan, seperti metode permintaan (GET, POST, PUT, dll.), URL permintaan, header permintaan, dan badan permintaan . Ini juga berisi berbagai metode yang dapat digunakan untuk mengambil dan memanipulasi informasi ini.

Biasanya Anda mengakses instance dari Session Request melalui variabel $request dalam aplikasi Laravel. Misalnya, sebuah sesi dapat diakses melalui instance permintaan menggunakan fungsi helper session().

use Illuminate\Http\Request;

class ExampleController extends Controller
{
   public function example(Request $request)
   {
       // Store data in the session using the put function
       $request->session()->put('key', 'value');

       // Retrieve data from the session using the get function
       $value = $request->session()->get('key');

       // Check if a value exists in the session using the has function:
       if ($request->session()->has('key')) {
           // The key exists in the session.
       }

       // To determine if a value exists in the session, even if its value is null:
       if ($request->session()->exists('users')) {
           // The value exists in the session.
       }

       // Remove data from the session using the forget function
       $request->session()->forget('key');
    }
}

Dalam contoh ini, variabel  $request itu adalah instance dari kelas Illuminate\Http\Request, yang mewakili permintaan HTTP saat ini. Fungsi session request instance mengembalikan sebuah instance dari kelas Illuminate\Session\Store, yang menyediakan berbagai fungsi untuk bekerja dengan sesi.

Ercole Palmeri

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Artikel Terbaru

Intervensi inovatif dalam Augmented Reality, dengan penampil Apple di Poliklinik Catania

Operasi oftalmoplasti menggunakan penampil komersial Apple Vision Pro dilakukan di Poliklinik Catania…

3 Mei 2024

Manfaat Halaman Mewarnai untuk Anak - dunia keajaiban untuk segala usia

Mengembangkan keterampilan motorik halus melalui mewarnai mempersiapkan anak untuk keterampilan yang lebih kompleks seperti menulis. Mewarnai…

2 Mei 2024

Masa Depan Ada di Sini: Bagaimana Industri Perkapalan Merevolusi Perekonomian Global

Sektor angkatan laut adalah kekuatan ekonomi global sejati, yang telah menuju pasar 150 miliar...

1 Mei 2024

Penerbit dan OpenAI menandatangani perjanjian untuk mengatur aliran informasi yang diproses oleh Kecerdasan Buatan

Senin lalu, Financial Times mengumumkan kesepakatan dengan OpenAI. FT melisensikan jurnalisme kelas dunianya…

April 30 2024