Laravel Facebook Login: Cara Menggunakan Facebook Login di Laravel – Codewithaden

Saya akan menunjukkan cara masuk pengguna dengan Facebook dan simpan ke dalam database Anda menggunakan Laravel. Kemudian , Saya akan memandu Anda untuk mengintegrasikan Facebook sosialita Gabung ke dalam aplikasi Laravel Anda. Jadi mari kita mulai.

Langkah 1: Buat proyek LARAVEL Facebook Login.

Buat proyek Laravel dengan mengetikkan perintah berikut.

composer create-project laravel/laravel socialLogin --prefer-dist 

Pergi ke proyek itu dan mulai server Laravel dengan mengetikkan perintah berikut.

php artisan serve 

Server dimulai di URL: http://localhost:8000

Anda perlu mengonfigurasi database Anda di a .env mengajukan.

Laravel mengirim dengan, secara default, dua tabel. Jadi jalankan perintah berikut di terminal Anda setelah menyiapkan database.

php artisan migrate 

Dua Tabel Pengguna dan Tabel Password_reset dan satu tabel migrasi yang dihasilkan dalam database MySQL

Langkah 2: Buat otentikasi Laravel

Laravel Auth

Laravel memberi kita otentikasi dasar. Selanjutnya, Laravel Membuat otentikasi menerapkan sangat sederhana. Hampir semuanya dikonfigurasi untuk Anda di luar kotak. Kita perlu memecat satu perintah di terminal kita, dan kita siap untuk pergi.

php artisan make:auth 

Anda dapat melihat di terminal itu Perancah otentikasi berhasil dihasilkan.

Jika kita beralih ke rute >> web.php file, lalu ada satu rute tambahan, dan tampilan kami dikonfigurasi secara otomatis.

Ubah URL ini: http://localhost:8000/login

Anda dapat melihat sesuatu seperti ini, dan ya, jangan lupa untuk memulai server sepanjang waktu dengan menembakkan perintah PHP Artisan Serve.

Laravel

Langkah 3: Unduh paket Laravel/Socialite untuk integrasi Facebook Laravel.

Sosialita adalah a kemasan Itu membuat otentikasi membangun dengan jejaring sosial tradisional sederhana. Jadi kami menggunakan paket spesifik Laravel ini.

composer require laravel/socialite 

Sekarang, tambahkan penyedia layanan ke konfigurasi aplikasi php mengajukan.

 [
    // Other service providers...

    Laravel\Socialite\SocialiteServiceProvider::class,
], 

Selain itu, juga perbarui array alias.

 Laravel\Socialite\Facades\Socialite::class, 

Langkah 4: Buat aplikasi Facebook untuk mendapatkan token

Pergi ke Portal Pengembang Facebook dengan mengikuti URL: https://developers.facebook.com/

Masuk melalui akun Facebook Anda. Anda akan melihat sesuatu seperti ini.

Facebook

Anda dapat melihat pada gambar yang ada Buat Aplikasi tombol. Jadi klik tombol itu, dan Anda akan menemukan satu jendela popup seperti ini.

Create

Di sini, saya telah menempatkan saya nama dan ID Email di popup dan menekan tombol Buat ID Aplikasi.

Anda akan melihat dasbor Anda seperti ini.

Laravel

Di dasbor Anda, Anda dapat melihat ID aplikasi Anda.

Sekarang kita perlu memilih Login Facebook opsi dari gambar di atas. Jadi klik tombol itu, dan Anda akan mengarahkan kembali ke halaman Dasbor Login Facebook. Anda dapat melihat ID aplikasi dan rahasia aplikasi Anda di halaman ini, yang kami butuhkan di aplikasi Laravel kami.

App ID: xxxxxxxxx
App Secret: xxxxxxx
 

Sekarang, ambil keduanya dan beralih ke editor Anda.

Arahkan ke konfigurasi >> services.php mengajukan dan menempatkan array layanan lain dengan kode berikut.

Milikmu ID Aplikasi menjadi milik Anda client_id , dan Rahasia Aplikasi menjadi client_secret

 [
    'client_id' => 'xxxxxxx',
    'client_secret' => 'xxxxxxxx',
    'redirect' => '',
], 

Kemungkinan kesalahan:

Saat Anda mencoba masuk melalui Facebook, Anda akan mendapatkan kesalahan berikut jika Anda belum menambahkan domain di aplikasi Facebook Anda.

Tidak dapat memuat URL: Domain URL ini tidak termasuk dalam domain aplikasi. Untuk memuat URL ini, tambahkan semua domain dan sub-domain aplikasi Anda ke bidang Domain Aplikasi di pengaturan aplikasi Anda.

Solusi yang mungkin:

Anda perlu menambahkan platform ke dasbor Facebook Anda dan, dalam hal itu, ketik url root proyek Anda seperti ini.

Socialite

Langkah 5: Hasilkan pengontrol untuk Laravel Facebook Login.

Kita perlu membuat satu pengontrol yang menangani rute otentikasi Facebook.

php artisan make:controller SocialAuthFacebookController 

Kita perlu menerapkan dua metode dalam pengontrol ini: berikut ini.

1) Redirect ): Redireksi pengguna kami ke Facebook.

2) panggilan balik ): Tangani panggilan balik dari Facebook.

redirect();
    }

    /**
     * Return a callback method from facebook api.
     *
     * @return callback URL from facebook
     */
    public function callback()
    {
       
    }
}
 

Langkah selanjutnya adalah menuju ke rute >> web.php mengajukan dan mendaftarkan rute.

name('home');
 

Pergi ke konfigurasi >> services.php file dan perbarui array kunci facebook dengan kunci lain yang disebut redirect dan Letakkan nilai ‘http: // localhost: 8000/callback’

 [
    'client_id' => 'xxxxxxx',
    'client_secret' => 'xxxxxxx',
    'redirect' => 'http://localhost:8000/callback',
], 

Langkah 6: Buat file tampilan login dengan mesin templating blade.

Kami perlu menambahkan tautan ke rute kami Redirect untuk mengarahkan pengguna ke Facebook. Jadi pergi ke Sumber daya >> tampilan >> auth >> login Pedang php dan tambahkan satu tautan Seperti login dengan Facebook.


@extends('layouts.app')

@section('content')
Login
{{ csrf_field() }}
@if ($errors->has('email')) {{ $errors->first('email') }} @endif
@if ($errors->has('password')) {{ $errors->first('password') }} @endif

OR


@endsection

Sekarang, jika Anda belum memulai server, lalu luncurkan server dan buka URL berikut

http://localhost:8000/login

Coba masuk melalui Facebook dan lihat apakah semuanya diatur dengan benar.

Kemungkinan kesalahan:

Kesalahan Curl 60: SSL SERTIFIKAT MASALAH: Tidak bisa mendapatkan sertifikat penerbit lokal

Solusi yang mungkin:

Dengan asumsi di windows

Server xampp

Mirip dengan lingkungan lain - unduh dan ekstrak untuk cacert.pem di sini (format/data file bersih)

https://curl.haxx.se/docs/caextract.html Letakkan di sini

C: \ xampp \ php \ ekstras \ ssl \ cacert.pem di php.ini Anda menempatkan baris ini di bagian ini (“C: \ xampp \ php \ php.ini”):

;;;;;;;;;;;;;;;;;;;;;;;    php   ini  Pilihan     ;;;;;;;;;;;;;;;;;;;;;;;  keriting   Cainfo   "C: \ xampp \ php \ extras \ ssl \ cacert.pem"   

Apalagi, akhirnya, restart server Anda.

Langkah 7: Buat satu model untuk akun sosial.

Sekarang, saat Anda mencoba Masuk dengan Facebook , Anda tidak akan mengarahkan ke tidak ada apa -apa, dan di URL Anda, Anda dapat melihat panggilan balik dengan beberapa kode di dalamnya. Jadi mari kita perbaiki.

Sekarang, kami Mengintegrasikan pengguna Facebook kami ke dalam aplikasi Laravel kami . Buat satu model serta satu migrasi di aplikasi kami.

 php artisan make:model SocialFacebookAccount -m 

Sekarang, tambahkan kode berikut di create_social_facebook_accounts_table.php mengajukan. Saya meletakkan file terakhir saya di sini.

integer('user_id');
          $table->string('provider_user_id');
          $table->string('provider');
          $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('social_facebook_accounts');
    }
}
 

Jalankan perintah berikut jika Anda telah memigrasikan tabel sebelumnya.

php artisan migrate:refresh 

Atau, jika ini adalah migrasi pertama kali Anda, terapkan perintah berikut.

php artisan migrate 

Langkah 8: Berikan hubungan dengan Model SocialFacebookcount.

Kolom adalah ID pengguna Facebook, dan masuk pemberi Kasing ini, akan selalu menjadi Facebook.

Tambahkan hubungan dan dapat diisi ke SocialfacebookCount model.

belongsTo(User::class);
  }
} 

Langkah selanjutnya adalah beberapa layanan penanganan yang akan mendaftarkan pengguna atau login jika ada akun. Membuat folder Aplikasi/Layanan .

Laravel tidak memiliki folder layanan di direktori aplikasi, jadi buat direktori terlebih dahulu dan letakkan konten berikut di dalamnya SocialFacebookcountservice.php mengajukan. Jadi struktur direktori penuh kami akan terlihat seperti ini.

Aplikasi >> Layanan >> SocialFeCookAccountService.php

whereProviderUserId($providerUser->getId())
            ->first();

        if ($account) {
            return $account->user;
        } else {

            $account = new SocialFacebookAccount([
                'provider_user_id' => $providerUser->getId(),
                'provider' => 'facebook'
            ]);

            $user = User::whereEmail($providerUser->getEmail())->first();

            if (!$user) {

                $user = User::create([
                    'email' => $providerUser->getEmail(),
                    'name' => $providerUser->getName(),
                    'password' => md5(rand(1,10000)),
                ]);
            }

            $account->user()->associate($user);
            $account->save();

            return $user;
        }
    }
} 

Ini akan mencoba menemukan akun penyedia dalam sistem, dan jika tidak ada, itu akan membuat pengguna baru. Metode ini juga akan mencoba mengaitkan akun sosial dengan alamat email jika pengguna sudah memiliki akun.

Sekarang semuanya siap untuk menangani panggilan balik Facebook ke aplikasi kami.

Langkah 9: Perbarui fungsi panggilan balik.

Langkah terakhir adalah memperbarui Panggilan balik SocialAuthFacebookController () fungsi.

redirect();
    }

    /**
     * Return a callback method from facebook api.
     *
     * @return callback URL from facebook
     */
    public function callback( SocialFacebookCacCountService  $ layanan  )
    {
        $user = $service->createOrGetUser(Socialite::driver('facebook')->user());
        auth()->login($user);
        return redirect()->to('/home');
    }
} 

Semua pengkodean sekarang selesai. Selanjutnya, buka URL login aplikasi kami.

http://localhost:8000/login

Sekarang, login dengan Facebook, dan Anda akan mengarahkan kembali ke rumah halaman, dan data telah disimpan di database

login

Langkah 10: Jadikan integrasi Facebook Laravel Anda dengan publik.

Aplikasi Anda dalam mode pengembangan, jadi ketika Anda mencoba masuk dengan nama pengguna dan kata sandi Facebook lain, itu tidak akan berfungsi.

Untuk itu, Anda perlu melakukan langkah -langkah.

LANGKAH 1:

Masuk ke Pengembang Facebook -> Aplikasi Anda

Di Pengaturan -> Dasar -> Kontak Email . (Berikan email apa pun)

LANGKAH 2:

Dan di ‘ Ulasan aplikasi ' Tab: Ubah

Apakah Anda ingin membuat aplikasi ini dan fitur langsungnya tersedia untuk masyarakat umum? Ya

Dan aplikasi Anda akan ditayangkan sekarang.

Sekarang, Anda akan dapat masuk sebagai pengguna Facebook mana pun.

GitHub: https://github.com/KrunalLathiya/LaravelFacebookLogin

Langkah -langkah untuk menggunakan kode github

  1. Klone repo di lokal Anda.
  2. Pergi ke root proyek dan jalankan perintah " Pembaruan Komposer.
  3. Edit file .env dan gunakan kredensial database MySQL Anda.
  4. Konfigurasikan Facebook Pengembang akun untuk mendapatkan client_id dan client_secret dan letakkan URL web Anda.
  5. Jalankan perintah “ PHP Artisan bermigrasi.
  6. Kita perlu bootstrap server Laravel, jadi jalankan " PHP Artisan Serve.
  7. Jika sekarang, buka URL ini: http://localhost:8000/login.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *