Laravel Socialite adalah paket yang disediakan oleh kerangka kerja Laravel yang menyederhanakan proses autentikasi pengguna melalui penyedia OAuth. Paket ini mengabstraksi banyak kompleksitas yang terlibat dalam mengintegrasikan autentikasi pihak ketiga ke dalam aplikasi Laravel Anda. Socialite mendukung berbagai penyedia, termasuk namun tidak terbatas pada:
Facebook
Google
Twitter
GitHub
LinkedIn
Fitur Utama
Autentikasi OAuth: Socialite menangani autentikasi OAuth, memungkinkan pengguna untuk masuk ke aplikasi Anda menggunakan akun yang sudah ada dari layanan lain.
Beberapa Penyedia: Mendukung berbagai penyedia OAuth secara default dan dapat diperluas untuk mendukung yang lain.
Kemudahan Penggunaan: Socialite menyediakan API yang sederhana dan bersih yang terintegrasi secara mulus dengan sistem autentikasi Laravel.
Pengalihan dan Callback: Mengelola pengalihan ke penyedia OAuth dan callback ke aplikasi Anda, menangani seluruh alur autentikasi.
Instalasi dan Konfigurasi
Untuk menginstal Socialite, Anda perlu menggunakan Composer:
composer require laravel/socialite
Setelah menginstal Socialite, Anda perlu menambahkan service provider di file config/app.php
Anda:
'aliases' => [
// Alias lainnya...
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
Penggunaan Dasar
Menyiapkan Penyedia OAuth
Pertama, Anda perlu menyiapkan kredensial untuk penyedia OAuth di file .env
Anda. Misalnya, untuk GitHub:
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
GITHUB_REDIRECT_URL=http://your-callback-url
Mendefinisikan Rute
Anda akan membutuhkan rute untuk mengarahkan pengguna ke penyedia OAuth dan untuk menangani callback:
use Laravel\Socialite\Facades\Socialite;
Route::get('login/github', function () {
return Socialite::driver('github')->redirect();
});
Route::get('login/github/callback', function () {
$user = Socialite::driver('github')->user();
// $user->token
// Anda sekarang dapat menangani pengguna yang terautentikasi, misalnya, membuat/memperbarui catatan mereka di database
});
Memperluas Socialite
Anda juga dapat memperluas Socialite untuk mendukung penyedia OAuth tambahan yang tidak didukung secara default. Ini dapat dilakukan dengan membuat driver kustom.
Contoh Alur Kerja
Pengguna mengklik "Login dengan GitHub": Mereka diarahkan ke halaman autentikasi GitHub.
Pengguna mengautentikasi dengan GitHub: Jika berhasil, GitHub mengarahkan mereka kembali ke aplikasi Anda.
Menangani callback: Socialite mengambil detail pengguna dari GitHub, dan Anda dapat menggunakan data ini untuk masuk ke aplikasi Anda atau membuat akun baru untuk mereka.
Menangani Data Pengguna
Setelah menerima data pengguna dari penyedia, Anda biasanya mencari atau membuat catatan pengguna yang sesuai di database Anda:
Route::get('login/github/callback', function () {
$githubUser = Socialite::driver('github')->user();
// Mencari atau membuat pengguna
$user = App\Models\User::firstOrCreate(
['github_id' => $githubUser->id],
['name' => $githubUser->name, 'email' => $githubUser->email]
);
// Masukkan pengguna ke aplikasi Anda
Auth::login($user);
return redirect('/home');
});
untuk informasi selengkapnya dapat di akses di: Dokumentasi Laravel