Kenali Perbedaan Token Based dan Session Based Login

RRI.CO.ID, Denpasar - Dibalik sebuah proses memasukkan Username dan Password, terdapat proses lanjutan yang membuat seorang pengguna bisa menjelajah laman web tersebut lebih lanjut. Proses login tidak berhenti ketika pengguna berhasil memasukkan username dan kata sandi. Dikutip dari idura, setelah itu, sistem perlu cara untuk “mengingat” bahwa pengguna tersebut sudah terautentikasi. Dua metode yang paling umum digunakan adalah login berbasis session dan login berbasis token. Keduanya memiliki tujuan yang sama, yaitu menjaga status login pengguna, tetapi cara kerjanya berbeda.

Login berbasis session adalah metode yang lebih tradisional dan bersifat “stateful”, artinya server menyimpan informasi login pengguna. Ketika pengguna berhasil login, server akan membuat sebuah catatan session dan memberikan sebuah kode unik yang disebut session ID kepada browser pengguna. Session ID ini biasanya disimpan dalam bentuk cookie. Setiap kali pengguna membuka halaman atau melakukan permintaan baru, browser akan mengirimkan cookie tersebut, lalu server akan mengecek session ID untuk memastikan identitas pengguna.

Kelebihan dari login berbasis session adalah pengelolaannya relatif sederhana dan aman jika dikonfigurasi dengan benar. Server dapat dengan mudah menghapus session kapan saja, misalnya saat pengguna logout atau saat terdeteksi aktivitas mencurigakan. Namun, metode ini memiliki kekurangan. Server harus menyimpan banyak data session, sehingga membutuhkan memori lebih besar. Jika aplikasi memiliki banyak pengguna atau berjalan di banyak server, pengelolaan session menjadi lebih rumit. Selain itu, sistem ini juga memiliki risiko tertentu seperti serangan CSRF jika tidak dilindungi dengan baik.

Sebaliknya, login berbasis token menggunakan pendekatan “stateless”, yaitu server tidak perlu menyimpan status login pengguna. Setelah login berhasil, server akan membuat sebuah token digital yang sudah ditandatangani secara aman, misalnya dalam bentuk JWT (JSON Web Token). Token ini berisi informasi dasar tentang pengguna dan dikirim ke perangkat pengguna. Setiap kali pengguna mengakses layanan, token tersebut dikirim kembali ke server, biasanya melalui header permintaan.

Keunggulan utama login berbasis token adalah kemampuannya untuk bekerja dengan sangat baik pada sistem modern. Karena server tidak perlu menyimpan session, metode ini lebih mudah dikembangkan untuk aplikasi berskala besar, layanan API, aplikasi mobile, dan sistem yang tersebar di banyak server. Namun, ada juga kelemahannya. Token sulit dicabut sebelum masa berlakunya habis. Jika token bocor atau dicuri, pihak lain bisa menggunakannya sampai token tersebut kedaluwarsa. Oleh karena itu, penyimpanan token harus dilakukan dengan sangat hati-hati.

Secara sederhana, perbedaan utama kedua metode ini terletak pada tempat penyimpanan dan cara pengelolaan data login. Login berbasis session menyimpan data di server dan cocok untuk aplikasi web tradisional dalam satu domain. Login berbasis token menyimpan data di sisi pengguna dan lebih cocok untuk aplikasi modern yang membutuhkan fleksibilitas dan skalabilitas tinggi.


Rekomendasi Berita