Dieses Tutorial führt Sie durch den Prozess des Hinzufügens der Facebook-Anmeldefunktion zu Ihrer Laravel-Anwendung.
Laravel Socialite bietet eine ausdrucksstarke, flüssige Schnittstelle zur OAuth-Authentifizierung mit Facebook, Twitter, Google, LinkedIn, GitHub, GitLab und Bitbucket.
Installieren Sie es über Composer:
composer require laravel/socialite
Fügen Sie Folgendes zu Ihrer Datei config/services.php hinzu:
'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT_URI'), ],
Dann fügen Sie diese zu Ihrer .env-Datei hinzu:
FACEBOOK_CLIENT_ID=your_facebook_app_id FACEBOOK_CLIENT_SECRET=your_facebook_app_secret FACEBOOK_REDIRECT_URI=http://localhost:8000/login/facebook/callback
Fügen Sie diese Routen zu Ihren Routen/web.php hinzu:
use App\Http\Controllers\Auth\FacebookController; Route::get('login/facebook', [FacebookController::class, 'redirectToFacebook'])->name('login.facebook'); Route::get('login/facebook/callback', [FacebookController::class, 'handleFacebookCallback']);
Erstellen Sie einen neuen Controller:
php artisan make:controller Auth/FacebookController
Implementieren Sie den Controller:
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()); } } }
Fügen Sie facebook_id zum ausfüllbaren Array in Ihrem Benutzermodell hinzu:
protected $fillable = [ 'name', 'email', 'password', 'facebook_id', ];
Erstellen Sie eine neue Migration:
php artisan make:migration add_facebook_id_to_users_table
In der neuen Migrationsdatei:
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'); }); }
Migration ausführen:
php artisan migrate
Fügen Sie in Ihrer Anmeldeansicht eine Schaltfläche „Mit Facebook anmelden“ hinzu:
Login with Facebook
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3