
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...
Comments