
Miskonsepsi Terbesar di Dunia Autentikasi
Di artikel *batch* awal, kita telah membedah fitur "Login with Google" menggunakan analogi OAuth2. Secara industri, penjelasan tersebut bisa diterima. TAPI, jika kamu berada di wawancara tingkat *Senior Security Engineer*, menyamakan "Login" dengan "OAuth2" akan membuatmu terlihat amatir.
Fakta kerasnya adalah: OAuth 2.0 BUKANLAH protokol untuk melakukan Login (Autentikasi). Ia murni adalah protokol untuk Memberi Izin (Otorisasi).
Mengingat Kembali Analogi Kunci Hotel
OAuth 2.0 ibarat Resepsionis Hotel yang memberimu Kartu Akses (Access Token). Kartu ini hanya bisa digunakan untuk membuka pintu ruang Gym atau Kolam Renang. Mesin pemindai pintu (API Server) tidak peduli SIAPA NAMAMU, ia hanya peduli: "Apakah kartu ini valid dan berhak masuk?"
Jika sebuah aplikasi menuntutmu untuk tahu "Siapa nama dan email pengunjung ini?" (Identitas Login), OAuth 2.0 tidak memiliki standarnya. Dulu, developer *nge-hack* sistem ini dengan memakai Access Token tadi untuk menembak URL API Profil Google, lalu menarik secara manual teks nama dan emailnya.
Lahirnya OIDC (OpenID Connect): Kartu Identitas Resmi
Melihat betapa berantakannya cara *developer* mengais-ngais data profil lewat API, para raksasa industri IT akhirnya menciptakan lapisan baru di ATAS OAuth 2.0. Standar baru ini dinamakan OIDC (OpenID Connect).
OIDC berjalan membonceng mesin OAuth 2.0. Saat proses *Redirect Consent* (Klik persetujuan) selesai, selain memberikan Access Token (untuk membuka pintu API), Google juga akan memberikan satu benda baru yang disebut ID Token.
Apa itu ID Token?
ID Token selalu berbentuk JWT (JSON Web Token).
Di dalam token ini, sudah tertulis dengan rapi, baku, dan standar seluruh identitas pengguna yang kamu butuhkan:
// Isi (Payload) dari sebuah ID Token
{
"iss": "https://accounts.google.com",
"sub": "1234567890", // ID unik pengguna
"email": "budi@mail.com",
"name": "Budi Coder",
"picture": "https://google.com/foto-budi.jpg",
"exp": 1600000000
}Berkat OIDC, *Backend Server*-mu tidak perlu lagi repot-repot membuang waktu menembak (Fetch) API Profil Google! *Backend*-mu cukup membedah isi ID Token (JWT) ini secara lokal (Offline), mengambil *string* email-nya, lalu membuatkan *Session Login* di sistem milikmu. Sangat elegan dan super cepat!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates