„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So implementieren Sie „Anmelden mit Facebook“ in Laravel

So implementieren Sie „Anmelden mit Facebook“ in Laravel

Veröffentlicht am 31.10.2024
Durchsuche:673

How to Implement \

Dieses Tutorial führt Sie durch den Prozess des Hinzufügens der Facebook-Anmeldefunktion zu Ihrer Laravel-Anwendung.

Voraussetzungen

  • Laravel-Projekt eingerichtet
  • Composer installiert
  • Facebook-Entwicklerkonto

Schritt 1: Erstellen Sie eine Facebook-App

  1. Gehe zu Facebook-Entwicklern
  2. Klicken Sie auf „Meine Apps“ und dann auf „App erstellen“
  3. Wählen Sie „Consumer“ als App-Typ
  4. Geben Sie die App-Details ein und erstellen Sie die App
  5. Notieren Sie sich im App-Dashboard Ihre App-ID und Ihr App-Geheimnis

Schritt 2: Installieren Sie Laravel Socialite

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

Schritt 3: Socialite konfigurieren

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

Schritt 4: Routen einrichten

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']);

Schritt 5: FacebookController erstellen

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());
        }
    }
}

Schritt 6: Benutzermodell aktualisieren

Fügen Sie facebook_id zum ausfüllbaren Array in Ihrem Benutzermodell hinzu:

protected $fillable = [
    'name',
    'email',
    'password',
    'facebook_id',
];

Schritt 7: Facebook-ID zur Benutzertabelle hinzufügen

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

Schritt 8: Anmeldeschaltfläche hinzufügen

Fügen Sie in Ihrer Anmeldeansicht eine Schaltfläche „Mit Facebook anmelden“ hinzu:


    Login with Facebook

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/johnmaths9/how-to-implement-login-with-facebook-in-laravel-2m5p?1 reproduziert. Wenn es zu Verstößen besteht, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

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