Cara Melaksanakan \'Log Masuk dengan Facebook\' dalam Laravel

王林
Lepaskan: 2024-08-16 06:54:42
asal
847 orang telah melayarinya

How to Implement

Tutorial ini akan membimbing anda melalui proses menambah fungsi log masuk Facebook pada aplikasi Laravel anda.

Prasyarat

  • Projek Laravel disediakan
  • Komposer dipasang
  • Akaun Pembangun Facebook

Langkah 1: Buat Apl Facebook

  1. Pergi ke Pembangun Facebook
  2. Klik pada "Apl Saya" dan kemudian "Buat Apl"
  3. Pilih "Pengguna" sebagai jenis apl
  4. Isi butiran apl dan buat apl
  5. Dalam papan pemuka apl, catatkan ID Apl dan Rahsia Apl anda

Langkah 2: Pasang Laravel Socialite

Laravel Socialite menyediakan antara muka yang ekspresif dan lancar untuk pengesahan OAuth dengan Facebook, Twitter, Google, LinkedIn, GitHub, GitLab dan Bitbucket.
Pasang melalui Komposer:

composer require laravel/socialite
Salin selepas log masuk

Langkah 3: Konfigurasikan Socialite

Tambah yang berikut pada fail config/services.php anda:

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => env('FACEBOOK_REDIRECT_URI'),
],
Salin selepas log masuk

Kemudian, tambahkan ini pada fail .env anda:

FACEBOOK_CLIENT_ID=your_facebook_app_id
FACEBOOK_CLIENT_SECRET=your_facebook_app_secret
FACEBOOK_REDIRECT_URI=http://localhost:8000/login/facebook/callback
Salin selepas log masuk

Langkah 4: Sediakan Laluan

Tambahkan laluan ini pada laluan/web.php anda:

use App\Http\Controllers\Auth\FacebookController;

Route::get('login/facebook', [FacebookController::class, 'redirectToFacebook'])->name('login.facebook');
Route::get('login/facebook/callback', [FacebookController::class, 'handleFacebookCallback']);
Salin selepas log masuk

Langkah 5: Buat FacebookController

Buat pengawal baharu:

php artisan make:controller Auth/FacebookController
Salin selepas log masuk

Laksanakan pengawal:

<?php

namespace App\Http\Controllers\Auth;

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

class FacebookController extends Controller
{
    public function redirectToFacebook()
    {
        return Socialite::driver('facebook')->redirect();
    }

    public function handleFacebookCallback()
    {
        try {
            $user = Socialite::driver('facebook')->user();
            $finduser = User::where('facebook_id', $user->id)->first();

            if ($finduser) {
                Auth::login($finduser);
                return redirect()->intended('dashboard');
            } else {
                $newUser = User::create([
                    'name' => $user->name,
                    'email' => $user->email,
                    'facebook_id'=> $user->id,
                    'password' => encrypt('123456dummy')
                ]);

                Auth::login($newUser);
                return redirect()->intended('dashboard');
            }
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }
}
Salin selepas log masuk

Langkah 6: Kemas kini Model Pengguna

Tambah facebook_id pada tatasusunan boleh diisi dalam model Pengguna anda:

protected $fillable = [
    'name',
    'email',
    'password',
    'facebook_id',
];
Salin selepas log masuk

Langkah 7: Tambahkan ID Facebook pada Jadual Pengguna

Buat migrasi baharu:

php artisan make:migration add_facebook_id_to_users_table
Salin selepas log masuk

Dalam fail pemindahan baharu:

public function up()
{
    Schema::table('users', function ($table) {
        $table->string('facebook_id')->nullable();
    });
}

public function down()
{
    Schema::table('users', function ($table) {
        $table->dropColumn('facebook_id');
    });
}
Salin selepas log masuk

Jalankan migrasi:

php artisan migrate
Salin selepas log masuk

Langkah 8: Tambah Butang Log Masuk

Dalam paparan log masuk anda, tambahkan butang "Log Masuk dengan Facebook":

<a href="{{ route('login.facebook') }}" class="btn btn-primary">
    Login with Facebook
</a>
Salin selepas log masuk

Atas ialah kandungan terperinci Cara Melaksanakan \'Log Masuk dengan Facebook\' dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan