Login dengan Facebook pada Laravel

Selamat datang kembali di website ini yang selalu membagikan tutorial - tutorial mengenai Teknologi, Pemrograman, adapun juga Game. Apa kabar kalian semua semoga dalam keadaan baik - baik saja, pembahasan kali ini mengenai cara membuat fitur login pada framework Laravel lewat Facebook. Disini saya akan memberikan langkah - langkah nya sekaligus sebagai materi pembelajaran bagi saya sendiri untuk Laravel yang digunakan yaitu versi 5.7 

Ikuti langkah - langkah sebagai berikut

1. Instal Projek Laravel baru dengan perintah dibawah ini / bisa langsung diterapkan pada projek yang sedang dikerjakan

composer create-project laravel/laravel=5.7 Login-Fb -vvv

2. Buat dan koneksi kan database dengan membuka file .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Di isi dengan nama Database
DB_USERNAME=Di isi dengan nama pengguna Database
DB_PASSWORD=Di isi dengan kata sandi Database
...
FB_ID= 'id client'
FB_SECRET= 'secret key'
FB_CALLBACK= 'http://localhost:8000/facebook/callback'

3. Penginstalan Package socialite dengan menggunakan perintah berikut

composer require laravel/socialite "^3.2.0"

Kemudian tambahkan konfigurasi berikut pada config / app.php 

'providers' => [
....
Laravel\Socialite\SocialiteServiceProvider::class,
],

'aliases' => [
....
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],

4. Mendapatkan Id dan Secret Key dari Facebook bisa klik disini

5. Setelah berhasil membuat aplikasi di Facebook dan mendapatkan id_client & secret_key tambahkan pada config / service.php dengan syntak seperti ini

'facebook' => [
'client_id' => 'env('FB_ID')',
'client_secret' => 'env('FB_SECRET')',
'redirect' => 'env('FB_CALLBACK')',
],

6. Selanjutnya tambahkan juga pada app / User.php

protected $fillable = [
         'name', 'email', 'password', 'facebook_id'
     ];

7. tambahkan juga pada skema database app/database/create_users_table.php

public function up()
{
Schema::create('users', function (Blueprint$table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('facebook_id')->nullable();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();

});
}

8. Kemudian jalankan perintah berikut untuk membuat fitur login dan register

php artisan make:auth

9. Tambahkan juga pada app/providers/AppServiceProvider.php

....
use Illuminate\Support\Facades\Schema;
....
function boot()
{
Schema::defaultStringLength(191);
}
....

Kemudian migrate dengan perintah berikut

php artisan migrate

10. Buat controller dengan perintah berikut serta route pada app / routes / web.app

php artisan make:controller FacebookController

berikut route nya

Route::get('facebook', 'FacebookController@redirectFacebook')->name('facebook');
Route::get('facebook/callback', 'FacebookController@handleFacebook');

11. Setelah itu tambahkan juga pada FacebookController nya

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

....
//
public function redirectFacebook()
{
return Socialite::driver('facebook')->redirect();
}

//
public function handleFacebook()
{
$user = Socialite::driver('facebook')->stateless()->user();

$findUser = User::where('facebook_id', $user->id)->first();

if($findUser){
Auth::login($findUser);
return redirect('/home');
} else {
$newUser = User::create([
'name' => $user->name,
'email' => $user->email,
'facebook_id' => $user->id,
'password' => bcrypt(str_random(20)),
]);

Auth::login($newUser);
return redirect('/home');
}
}
...
...

12. Tambahkan juga pada Reosurces/Views/Auth/login.blade.php

<div class="form-group row mb-0">
    <div class="col-md-8 offset-md-4">
         <a href="{{ route('facebook') }}" class="btn btn-primary"><i class="fa fa-facebook"></i> Facebook</a>
    </div>
</div>

Selesai....!!!

Mungkin hanya itu untuk pembahasan kali ini mohon ma'af bila terdapat kesalahan cukup sekian dan terima kasih...

Related Articles

Comments