Laravel Socialite

0
25
Baraja Coding

Laravel Socialite adalah cara yang sederhana dan nyaman untuk melakukan autentikasi dengan penyedia OAuth. Saat ini, Socialite mendukung autentikasi melalui Facebook, Twitter, LinkedIn, Google, GitHub, GitLab, Bitbucket, dan Slack.

Instalasi

Untuk memulai dengan Socialite, gunakan manajer paket Composer untuk menambahkan paket ke dependensi proyek Anda:

composer require laravel/socialite

Konfigurasi

Sebelum menggunakan Socialite, Anda perlu menambahkan kredensial untuk penyedia OAuth yang digunakan aplikasi Anda. Biasanya, kredensial ini dapat diperoleh dengan membuat “aplikasi pengembang” dalam dashboard layanan yang akan Anda autentikasi.

Kredensial ini harus ditempatkan dalam file konfigurasi config/services.php aplikasi Anda, dan harus menggunakan kunci facebooktwitter (OAuth 1.0), twitter-oauth-2 (OAuth 2.0), linkedin-openidgooglegithubgitlabbitbucket, atau slack, tergantung pada penyedia yang dibutuhkan aplikasi.

Contoh konfigurasi untuk Github:

PHP

'github' => [
    'client_id' => env('GITHUB_CLIENT_ID'),
    'client_secret' => env('GITHUB_CLIENT_SECRET'),
    'redirect' => '[6](http://example.com/callback-url)',
],

Routing Autentikasi

Untuk mengautentikasi pengguna menggunakan penyedia OAuth, Anda memerlukan dua rute: satu untuk mengarahkan pengguna ke penyedia OAuth, dan satu lagi untuk menerima callback dari penyedia setelah autentikasi.

Berikut adalah contoh implementasi kedua rute tersebut:

PHP

use Laravel\Socialite\Facades\Socialite;

Route::get('/auth/redirect', function () {
    return Socialite::driver('github')->redirect();
});

Route::get('/auth/callback', function () {
    $user = Socialite::driver('github')->user();
    // $user->token
});

Autentikasi & Penyimpanan

Setelah pengguna telah diambil dari penyedia OAuth, Anda dapat menentukan apakah pengguna ada di database aplikasi Anda dan mengautentikasi pengguna. Jika pengguna tidak ada di database aplikasi Anda, biasanya Anda akan membuat catatan baru di database Anda untuk mewakili pengguna.

Berikut adalah contoh bagaimana Anda bisa melakukannya:

PHP

use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;

Route::get('/auth/callback', function () {
    $user = Socialite::driver('github')->user();

    $user = User::firstOrCreate(
        ['github_id' => $user->getId()],
        ['name' => $user->getName(), 'email' => $user->getEmail()]
    );

    Auth::login($user, true);

    return redirect('/home');
});

Dengan demikian, Anda telah berhasil mengimplementasikan Laravel Socialite dalam aplikasi yang telah dibuat.

LEAVE A REPLY

Please enter your comment!
Please enter your name here