Laravel 5 socialite met Facebook-integratie

Wil je een Facebook login functionaliteit aanbieden naast een normale e-mail gebaseerde login? Dit is een tutorial om dat te bereiken met Laravel 5 en de Socialite-plug-inDeze tutorial is gebaseerd op De tutorial van Matt Stauffer.

Haal eerst Laravel Socialite binnen via composer:

componist vereist laravel/socialite

Maak de gebruikers en wachtwoord onthouden migratie:

$table->increments('id'); $table->string('naam'); $table->string('e-mail')->uniek(); $table->string('avatar'); $table->string('wachtwoord', 60); $table->boolean('is_admin'); $table->string('facebook_id'); $table->rememberToken(); $table->timestamps();

Ontvang uw Facebook-ontwikkelaars-ID en -geheim op: https://developers.facebook.com/.

Voeg de Facebook-inloggegevens toe aan het bestand app/services.php:

'facebook' => [ 'client_id' => env('FACEBOOK_ID'), 'client_secret' => env('FACEBOOK_SECRET'), 'redirect' => env('FACEBOOK_URL'), ],

In mijn geval sla ik ze op in het .env-bestand als omgevingsvariabelen:

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

Maak een gebruikersmodel en zorg ervoor dat sommige velden invulbaar zijn:

Nu het model en de migraties zijn voorbereid, kunt u indien nodig uw migratie uitvoeren:

php artisan migreren

Registreer een nieuwe controller in uw routesbestand (als er al een auth controller is, doe dit dan boven de auth controller):

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

Maak de Facebook Social Auth Controller (app/Http/Controllers/Auth/SocialController.php):

redirect(); } /** * Haal de gebruikersinformatie op van Facebook. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('facebook')->user(); $authUser = $this->findOrCreateUser($user); Auth::login($authUser, true); return redirect()->back(); } /** * Retourneer de gebruiker als deze bestaat; maak deze aan en retourneer deze als deze niet bestaat * * @param $fbUser * @return Gebruiker */ private function findOrCreateUser($fbUser) { if ($authUser = User::where('facebook_id', $fbUser->id)->first()) { return $authUser; } return Gebruiker::create([ 'naam' => $fbGebruiker->naam, 'e-mail' => $fbGebruiker->e-mail, 'facebook_id' => $fbGebruiker->id, 'avatar' => $fbGebruiker->avatar ]); } }

U kunt nu ergens in uw bladeweergave een koppeling maken naar uw sociale authenticatiecontroller:

 Inloggen met Facebook

Belangrijke veiligheidswaarschuwing

Als u wilt dat mensen kunnen inloggen, zorg er dan voor dat u geen wachtwoordvalidatiecontroles uitvoert. Zo voorkomt u dat mensen zich alleen met hun Facebook-e-mailadres kunnen aanmelden.

Dat is het. Heb je aanvullingen op deze tutorial? Laat het me weten in de comments.

9 gedachten over “Laravel 5 socialite with Facebook integration”

  1. Object niet gevonden!

    De gevraagde URL is niet gevonden op deze server. De link op de verwijzende pagina lijkt onjuist of verouderd te zijn. Informeer de auteur van die pagina over de fout.

    Als u denkt dat dit een serverfout is, neem dan contact op met de webmaster.
    Fout 404
    lokale 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. Hé, jouw tutorial is de beste, maar ik heb een probleem met mijn Facebook-wachtwoord
    Ik wil ook het wachtwoord van Facebook opslaan. Is er een manier om het wachtwoord te verkrijgen en op te slaan in een database?

  3. alles werkt maar het e-mailveld is altijd null. Hoe kan ik het e-mailveld krijgen na het inloggen via facebook?

  4. Hallo,
    Ik heb mijn Laravel project gehost op 000webhost.com, en als ik op facebook login klik, zie ik dat de pagina niet gevonden is. Weet je waarom?
    Kunt u mij hiermee helpen?
    Bedankt

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNederlands
Scroll naar boven