Laravel 5 Socialite mit Facebook-Integration

Möchten Sie neben einem regulären E-Mail-basierten Login auch eine Facebook-Login-Funktionalität anbieten? Dies ist ein Tutorial, um dies mit Laravel 5 und dem Socialite-PluginDieses Tutorial basiert auf Matt Stauffers Tutorial.

Als erstes laden wir Laravel Socialite über den Composer herunter:

Komponist erfordert Laravel/Socialite

Erstellen Sie die Migration „Benutzer“ und „Password_remember“:

$table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('avatar'); $table->string('password', 60); $table->boolean('is_admin'); $table->string('facebook_id'); $table->rememberToken(); $table->timestamps();

Holen Sie sich Ihre Facebook-Entwickler-ID und Ihr Geheimnis unter: https://developers.facebook.com/.

Fügen Sie die Facebook-Anmeldeinformationen in die Datei app/services.php ein:

'Facebook' => [ 'Client-ID' => Umgebung('FACEBOOK_ID'), 'Client-Geheimnis' => Umgebung('FACEBOOK_GEHEIMNIS'), 'Umleitung' => Umgebung('FACEBOOK_URL'), ],

In meinem Fall speichere ich sie als Umgebungsvariablen in der .env-Datei:

FACEBOOK_ID=xxx FACEBOOK_SECRET=yyy FACEBOOK_URL=http://myapp.devapp/auth/facebook/callback

Erstellen Sie ein Benutzermodell und stellen Sie sicher, dass einige Felder ausfüllbar sind:

Damit sind das Modell und die Migrationen vorbereitet. Führen Sie bei Bedarf Ihre Migration aus:

PHP Artisan migrieren

Registrieren Sie einen neuen Controller in Ihrer Routendatei (wenn bereits ein Authentifizierungscontroller vorhanden ist, tun Sie dies über dem Authentifizierungscontroller):

Route::get('/auth/facebook', 'Auth\SocialController@redirectToProvider'); Route::get('/auth/facebook/callback', 'Auth\SocialController@handleProviderCallback');

Erstellen Sie den Facebook Social Auth Controller (app/Http/Controllers/Auth/SocialController.php):

redirect(); } /** * Benutzerinformationen von Facebook abrufen. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('facebook')->user(); $authUser = $this->findOrCreateUser($user); Auth::login($authUser, true); return redirect()->back(); } /** * Benutzer zurückgeben, falls vorhanden; erstellen und zurückgeben, falls nicht * * @param $fbUser * @return User */ private function findOrCreateUser($fbUser) { if ($authUser = User::where('facebook_id', $fbUser->id)->first()) { return $authUser; } return Benutzer::erstellen([ 'Name' => $fbUser->Name, 'E-Mail' => $fbUser->E-Mail, 'Facebook-ID' => $fbUser->ID, 'Avatar' => $fbUser->Avatar ]); } }

Sie können jetzt von irgendwo in Ihrer Blade-Ansicht aus eine Verknüpfung zu Ihrem Social-Auth-Controller herstellen:

 Mit Facebook anmelden

Wichtiger Sicherheitshinweis

Wenn Sie den Benutzern weiterhin die Möglichkeit zum Anmelden geben möchten, achten Sie darauf, dass Sie keine Kennwortvalidierungsprüfungen durchführen, sodass sich Benutzer nicht nur mit Facebook-E-Mail-Adressen anmelden können.

Das ist alles. Haben Sie Ergänzungen zu diesem Tutorial? Lassen Sie es mich in den Kommentaren wissen.

9-Gedanken zu „Laravel 5 socialite with Facebook integration“

  1. Objekt nicht gefunden!

    Die angeforderte URL konnte auf diesem Server nicht gefunden werden. Der Link auf der verweisenden Seite scheint falsch oder veraltet zu sein. Bitte informieren Sie den Autor dieser Seite über den Fehler.

    Wenn Sie glauben, dass es sich hierbei um einen Serverfehler handelt, wenden Sie sich bitte an den Webmaster.
    Fehler 404
    lokaler Host
    Apache/2.4.12 (Unix) OpenSSL/1.0.1p PHP/5.5.27 mod_perl/2.0.8-dev Perl/v5.16.3

  2. hey, dein Tutorial ist das beste, aber ich habe ein Problem mit dem Facebook-Passwort
    ich möchte auch das Facebook-Passwort speichern. Gibt es also eine Methode, um das Passwort abzurufen und in der Datenbank zu speichern?

  3. alles funktioniert, aber das E-Mail-Feld ist immer leer. Wie kann ich nach der Anmeldung über Facebook das E-Mail-Feld abrufen?

  4. Hallo,
    Ich hoste mein Laravel-Projekt auf 000webhost.com und wenn ich auf Facebook-Login klicke, wird mir angezeigt, dass die Seite nicht gefunden wurde. Kennen Sie den Grund dafür?
    Bitte helfen Sie mir dabei.
    Danke

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch
Nach oben blättern