Web Development 23 Aug 2026 1 Kali Dibaca

Cara Kerja Sistem Login dan Autentikasi pada Aplikasi Web

Gugun Nurdiansyah
Penulis
Cara Kerja Sistem Login dan Autentikasi pada Aplikasi Web

Apa Itu Autentikasi?

Autentikasi adalah proses untuk memastikan siapa pengguna yang sedang mengakses aplikasi.

Contohnya:

User
↓
Email + Password
↓
Authentication
↓
User Terverifikasi
↓
Login Berhasil

Autentikasi menjawab pertanyaan:

"Siapa Anda?"

Apa Itu Authorization?

Authorization berbeda dengan authentication.

Authorization menentukan apa yang boleh dilakukan oleh pengguna.

Contohnya:

Authentication
↓
Siapa Anda?

Authorization
↓
Apa yang Boleh Anda Lakukan?

Misalnya:

Admin
✓ Kelola User
✓ Kelola Produk
✓ Lihat Laporan

Staff
✗ Kelola User
✓ Kelola Produk
✓ Lihat Laporan

Alur Login Secara Sederhana

Proses login biasanya:

User
↓
Form Login
↓
Email + Password
↓
Server
↓
Validasi
↓
Database
↓
Password Verification
↓
Session / Token
↓
Dashboard

1. User Membuka Halaman Login

User mengakses:

https://example.com/login

Server menampilkan form:

Email
Password
[ Login ]

2. User Mengisi Kredensial

Contohnya:

Email:
user@example.com

Password:
********

Ketika tombol Login ditekan, browser mengirim request ke server.

POST /login
↓
Server

3. Server Menerima Request

Server menerima data:

{
  "email": "user@example.com",
  "password": "********"
}

Password tidak boleh disimpan atau ditampilkan dalam bentuk plaintext di database.

4. Validasi Input

Server memeriksa apakah data yang dikirim valid.

Contohnya:

Email
↓
Format Valid?

Password
↓
Tidak Kosong?

Jika tidak valid:

Validation Error
↓
Kembali ke Login

5. Mencari User di Database

Server mencari akun berdasarkan email atau username.

Contohnya:

SELECT *
FROM users
WHERE email = 'user@example.com';

Jika user tidak ditemukan:

User Tidak Ditemukan
↓
Login Gagal

6. Password Verification

Password di database seharusnya disimpan dalam bentuk hash.

Contohnya:

Password Asli
↓
Hash Function
↓
Password Hash

Database menyimpan:

$2y$10$................................

Saat login:

Password User
↓
Verify Hash
↓
Cocok?

Jika cocok:

Login Berhasil

Jika tidak:

Login Gagal

Jangan Menyimpan Password Plaintext

Jangan menyimpan:

password = "123456"

Gunakan password hashing seperti:

bcrypt
Argon2

Password hash dirancang agar password asli tidak perlu disimpan.

7. Membuat Session

Setelah login berhasil, aplikasi dapat membuat session.

Alurnya:

Login Berhasil
↓
Create Session
↓
Session ID
↓
Browser

Browser kemudian menyimpan cookie session.

Contohnya:

Cookie
↓
session_id=abc123...

Apa Itu Session?

Session adalah mekanisme untuk mempertahankan status login pengguna selama beberapa request.

Tanpa session:

Request 1
↓
Login

Request 2
↓
Server Tidak Tahu User

Dengan session:

Login
↓
Session
↓
Request
↓
Server Mengenali User

8. Cookie pada Browser

Cookie digunakan browser untuk menyimpan informasi tertentu yang diperlukan aplikasi.

Contohnya:

Browser
↓
Cookie
↓
Session ID

Cookie yang aman biasanya menggunakan:

HttpOnly
Secure
SameSite

Konfigurasi tepat bergantung pada arsitektur aplikasi.

Apa Itu HttpOnly?

Cookie HttpOnly tidak dapat diakses langsung oleh JavaScript pada browser.

Ini membantu mengurangi risiko pencurian cookie melalui serangan tertentu seperti XSS.

Apa Itu Secure?

Cookie Secure hanya dikirim melalui koneksi HTTPS.

HTTPS
↓
Secure Cookie

Untuk production, HTTPS sangat penting.

Apa Itu SameSite?

SameSite membantu mengontrol kapan cookie dikirim pada konteks cross-site.

Konfigurasinya dapat berupa:

Strict
Lax
None

Pemilihannya harus disesuaikan dengan kebutuhan aplikasi.

Session-Based Authentication

Arsitektur sederhananya:

Browser
↓
Login
↓
Server
↓
Session
↓
Cookie

Pada request berikutnya:

Browser
↓
Cookie
↓
Server
↓
Session
↓
User

Token-Based Authentication

Selain session, aplikasi dapat menggunakan token.

Contohnya:

Login
↓
Server
↓
Access Token
↓
Client

Kemudian:

Client
↓
Authorization Header
↓
API

Contohnya:

Authorization: Bearer <token>

Session vs Token

Session:

✓ Cocok untuk Web App
✓ Cookie-based
✓ Mudah digunakan dengan browser
✓ Server mengelola session

Token:

✓ Cocok untuk API
✓ Mobile App
✓ SPA
✓ Integrasi antar aplikasi

Pemilihan tergantung arsitektur.

Authentication untuk REST API

API dapat menggunakan token:

POST /api/login
↓
Access Token
↓
Client

Request berikutnya:

GET /api/profile
Authorization: Bearer TOKEN

Server memvalidasi token tersebut.

JWT Authentication

JWT atau JSON Web Token merupakan salah satu mekanisme token-based authentication.

Konsepnya:

Login
↓
JWT
↓
Client
↓
API Request
↓
Verify JWT

JWT biasanya memiliki tiga bagian:

Header
.
Payload
.
Signature

JWT bukan berarti selalu lebih aman daripada session. Keamanan bergantung pada bagaimana token dibuat, disimpan, divalidasi, dan dicabut.

Laravel Authentication

Laravel menyediakan berbagai komponen untuk authentication.

Alurnya:

Laravel
↓
Login
↓
Authentication
↓
Session
↓
Middleware
↓
Protected Route

Contohnya:

Route
↓
auth middleware
↓
Dashboard

Jika user belum login:

Request
↓
auth middleware
↓
Belum Login
↓
Login Page

Laravel Sanctum

Untuk aplikasi Laravel yang membutuhkan API authentication, Laravel Sanctum dapat digunakan pada skenario tertentu.

Contohnya:

Mobile / SPA
↓
Laravel API
↓
Sanctum
↓
Authentication

Sanctum dapat digunakan untuk personal access token dan autentikasi berbasis cookie untuk SPA, tergantung arsitektur aplikasi.

Role dan Permission

Setelah authentication, aplikasi biasanya menentukan hak akses.

Contohnya:

User
↓
Authentication
↓
Role
↓
Permission
↓
Access

Misalnya:

Admin
↓
users.create
users.update
users.delete

Sedangkan:

Staff
↓
users.view

Middleware

Middleware dapat digunakan untuk membatasi akses.

Contohnya:

Request
↓
Authentication Middleware
↓
Authorization Middleware
↓
Controller

Ini membantu memisahkan keamanan dari business logic utama.

Login dan Rate Limiting

Login endpoint harus dilindungi dari brute-force attack.

Contohnya:

Login Attempt
↓
Rate Limit
↓
Maximum Attempts
↓
Temporary Block

Misalnya sistem membatasi jumlah percobaan login dalam periode tertentu.

Multi-Factor Authentication

Untuk akun penting, dapat ditambahkan MFA.

Alurnya:

Email + Password
↓
OTP / Authenticator
↓
Verification
↓
Login

MFA dapat memberikan lapisan keamanan tambahan.

Forgot Password

Sistem login biasanya memiliki fitur reset password.

Alurnya:

Forgot Password
↓
Email
↓
Reset Token
↓
Reset Password
↓
Password Baru

Token reset harus memiliki masa berlaku dan tidak boleh mudah ditebak.

Email Verification

Aplikasi juga dapat memverifikasi email:

Register
↓
Verification Email
↓
Click Link
↓
Email Verified

Fitur ini membantu memastikan alamat email benar-benar dimiliki pengguna.

Logout

Logout digunakan untuk mengakhiri sesi.

User
↓
Logout
↓
Session Destroy / Token Revoked
↓
Login Page

Untuk token, mekanisme pencabutan bergantung pada jenis token dan arsitektur aplikasi.

Session Expiration

Session sebaiknya memiliki masa berlaku.

Contohnya:

Login
↓
Session
↓
Timeout
↓
Login Again

Durasi session harus disesuaikan dengan tingkat keamanan aplikasi.

Remember Me

Beberapa aplikasi memiliki:

☑ Remember Me

Fitur ini memungkinkan pengguna tetap login lebih lama.

Namun, harus diterapkan dengan mekanisme cookie/token yang aman.

HTTPS Sangat Penting

Login tidak seharusnya menggunakan HTTP biasa.

Gunakan:

Browser
↓
HTTPS
↓
Server

HTTPS mengenkripsi komunikasi antara browser dan server.

Jangan Percaya Data dari Browser

Browser dapat dimanipulasi oleh pengguna.

Contohnya:

role=admin

Jangan langsung mempercayainya.

Server harus mengambil informasi role dari sumber yang dipercaya.

Request
↓
Server
↓
Database / Session
↓
Authorization

Authentication Bukan Sekadar Login

Sistem authentication yang baik mencakup:

Login
Register
Password Hashing
Session
Token
Logout
Reset Password
Email Verification
MFA
Rate Limiting
Authorization

Semua bagian tersebut saling berhubungan.

Contoh Alur Lengkap

User
↓
Login Page
↓
Email + Password
↓
HTTPS
↓
Server
↓
Validate Input
↓
Find User
↓
Verify Password
↓
Create Session / Token
↓
Authorization
↓
Dashboard

Contoh Request Login

POST /login
Content-Type: application/json

{
    "email": "user@example.com",
    "password": "password"
}

Server memvalidasi dan mengembalikan session atau token sesuai arsitektur aplikasi.

Contoh Protected API

GET /api/profile
Authorization: Bearer TOKEN

Server:

Token
↓
Valid?
↓
User
↓
Permission
↓
Response

Kesalahan yang Harus Dihindari

Beberapa kesalahan umum:

✗ Password plaintext
✗ Tidak menggunakan HTTPS
✗ Tidak ada rate limiting
✗ Token tidak memiliki expiry
✗ Cookie tidak aman
✗ Authorization hanya di frontend
✗ Tidak ada MFA untuk akun kritis
✗ Session tidak di-invalidate saat logout

Checklist Sistem Login

✓ HTTPS
✓ Password hashing
✓ Input validation
✓ Session / Token
✓ Secure cookie
✓ Rate limiting
✓ Logout
✓ Password reset
✓ Email verification
✓ Authorization
✓ Role & Permission
✓ MFA
✓ Audit log
✓ Session expiration
✓ Security monitoring

Sistem Login Bersama Ovla Media

Ovla Media dapat membantu membangun sistem authentication dan authorization untuk aplikasi bisnis, seperti:

  1. Login & Register.

  2. Laravel Authentication.

  3. Laravel Sanctum.

  4. JWT Authentication.

  5. Role & Permission.

  6. Multi-Role User.

  7. MFA / 2FA.

  8. Password Reset.

  9. Email Verification.

  10. Session Management.

  11. REST API Security.

  12. Audit Log.

  13. Rate Limiting.

  14. Web Application Security.

  15. Custom Web Application.

Sistem autentikasi dapat disesuaikan dengan kebutuhan aplikasi web, mobile app, API, SaaS, maupun aplikasi internal perusahaan.

Kesimpulan

Sistem login bukan hanya proses memasukkan email dan password.

Secara sederhana:

Login
↓
Validasi
↓
Password Verification
↓
Session / Token
↓
Authentication
↓
Authorization
↓
Access

Authentication menentukan siapa pengguna, sedangkan authorization menentukan apa yang boleh dilakukan pengguna tersebut.

Untuk aplikasi modern, keamanan login perlu didukung dengan HTTPS, password hashing, secure session/token, rate limiting, role & permission, password recovery, dan MFA jika diperlukan.

Dengan sistem autentikasi yang dirancang dengan baik, aplikasi dapat memberikan akses kepada pengguna yang tepat sekaligus melindungi data dan fitur penting dari akses yang tidak sah.

#Sistem Login #Authentication #Authorization #Login Website #Web Authentication #Laravel Authentication #Laravel Sanctum #JWT #Session #Access Token #Role Permission #Password Hashing #Bcrypt #Argon2 #MFA #2FA #REST API Security #API Authentication #Web Security #HTTPS #Rate Limiting #Session Management #Laravel #PHP #Web Development #Application Security #Cybersecurity #Software Development #Digital Transformation #Ovla Media #Jasa Pengembangan Aplikasi
Beranda Produk Artikel
Konsultasi
OVLA

Navigasi Utama

Hubungi Kami

Mulai Konsultasi Sekarang