Tutorial Login Menggunakan Google di Laravel dengan Socialite
Di era sekarang login lewat media sosial jadi fitur wajib di banyak website. Salah satu yang paling sering dipakai adalah login menggunakan akun Google. Dengan login via Google, pengguna tidak perlu repot membuat akun baru, cukup izinkan akses, langsung bisa masuk. Di Laravel sendiri kita bisa memanfaatkan package bawaan bernama Laravel Socialite yang memudahkan integrasi OAuth (termasuk Google) hanya dengan beberapa langkah.
Di bawah ini saya akan jelaskan secara detail bagaimana cara membuat login Google di Laravel mulai dari awal sampai tombolnya muncul di halaman login.
Laravel Socialite adalah library resmi dari Laravel untuk login via pihak ketiga seperti Google, Facebook, GitHub, dsb. Dengan Socialite kita tidak perlu implementasi OAuth manual.
Di terminal jalankan:
Perintah ini akan mengunduh package Socialite dan mendaftarkannya di project Laravel kita.
Kalau kamu sudah punya project Laravel dan sistem login defaultnya sudah jalan (misalnya pakai Laravel Breeze atau Jetstream), kamu bisa langsung lanjut. Tapi kalau belum, buat project baru dulu:
laravel new nama_project
cd nama_project
Lalu jalankan php artisan serve untuk memastikan projectnya jalan.
Agar bisa login via Google, kita perlu daftar aplikasi kita ke Google Cloud Console agar Google tahu ke mana harus mengirimkan data pengguna.
Langkahnya:
Buat project baru atau pilih project yang sudah ada.
Masuk ke menu API & Services → Credentials.
Klik Create Credentials → OAuth Client ID.
Pilih Web Application.
Di Authorized redirect URIs, masukkan alamat callback seperti:
http://localhost:8000/auth/google/callback
(ini route callback yang akan kita buat nanti).
Setelah klik Create, kamu akan dapat Client ID dan Client Secret. Simpan karena nanti kita masukkan ke .env.
Intinya: Client ID & Secret ini adalah “kunci” untuk berkomunikasi antara Laravel dan Google.
.envBuka file .env lalu tambahkan:
Data ini diambil dari Google Cloud Console tadi.
config/services.phpAgar Socialite tahu credential kita, buka config/services.php lalu tambahkan:
Dengan cara ini, Laravel otomatis membaca credential dari .env.
Sekarang kita buat controller baru:
Lalu isi file GoogleController.php dengan kode berikut:
Penjelasan:
google_redirect() mengarahkan user ke halaman login Google.
google_callback() menangkap data user setelah user mengizinkan login, lalu otomatis login atau membuat akun baru.
Buka routes/web.php lalu tambahkan:
Ini adalah dua route utama: route untuk redirect ke Google dan route callback setelah user login.
Buka resources/views/auth/login.blade.php (atau file login kamu), lalu tambahkan:
Kenapa pakai bukan ? Karena kita mau link ke route Google, bukan submit form. Stylingnya pakai Tailwind supaya warna merah dan teks putih.
Jalankan server Laravel:
http://localhost:8000/login./dashboard dalam keadaan login.
User klik tombol Login with Google.
Laravel kirim user ke Google OAuth.
Google minta izin user.
Google kirim balik data user ke route callback kita.
Laravel cek email user, buat akun kalau belum ada.
Laravel login-kan user ke sistem.
User diarahkan ke dashboard.