Heim > Backend-Entwicklung > PHP-Tutorial > So implementieren Sie „Anmelden mit Facebook' in Laravel

So implementieren Sie „Anmelden mit Facebook' in Laravel

王林
Freigeben: 2024-08-16 06:54:42
Original
879 Leute haben es durchsucht

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. Gehen Sie zu Facebook Developers
  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
Nach dem Login kopieren

Schritt 3: Socialite konfigurieren

Fügen Sie Folgendes zu Ihrer config/services.php-Datei hinzu:

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => env('FACEBOOK_REDIRECT_URI'),
],
Nach dem Login kopieren

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
Nach dem Login kopieren

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']);
Nach dem Login kopieren

Schritt 5: FacebookController erstellen

Neuen Controller erstellen:

php artisan make:controller Auth/FacebookController
Nach dem Login kopieren

Implementieren Sie den Controller:

<?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());
        }
    }
}
Nach dem Login kopieren

Schritt 6: Benutzermodell aktualisieren

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

protected $fillable = [
    'name',
    'email',
    'password',
    'facebook_id',
];
Nach dem Login kopieren

Schritt 7: Facebook-ID zur Benutzertabelle hinzufügen

Erstellen Sie eine neue Migration:

php artisan make:migration add_facebook_id_to_users_table
Nach dem Login kopieren

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');
    });
}
Nach dem Login kopieren

Migration ausführen:

php artisan migrate
Nach dem Login kopieren

Schritt 8: Anmeldeschaltfläche hinzufügen

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

<a href="{{ route('login.facebook') }}" class="btn btn-primary">
    Login with Facebook
</a>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo implementieren Sie „Anmelden mit Facebook' in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage