Tutorial ini akan membimbing anda melalui proses menambah fungsi log masuk Facebook pada aplikasi Laravel anda.
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
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'), ],
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
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']);
Buat pengawal baharu:
php artisan make:controller Auth/FacebookController
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()); } } }
Tambah facebook_id pada tatasusunan boleh diisi dalam model Pengguna anda:
protected $fillable = [ 'name', 'email', 'password', 'facebook_id', ];
Buat migrasi baharu:
php artisan make:migration add_facebook_id_to_users_table
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'); }); }
Jalankan migrasi:
php artisan migrate
Dalam paparan log masuk anda, tambahkan butang "Log Masuk dengan Facebook":
<a href="{{ route('login.facebook') }}" class="btn btn-primary"> Login with Facebook </a>
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!