Skip to main content

Wat is Laravel Socialite

Laravel Socialite is het officiële pakket waarmee je eenvoudig sociale login via OAuth 2.0 implementeert. Het ondersteunt de belangrijkste providers zoals GitHub, Google, Facebook, X (Twitter) en LinkedIn, zodat een complexe OAuth-implementatie in slechts enkele regels code kan. De ingebouwde ondersteunde providers zijn:

De flow van sociale login


Installatie

Voeg het pakket toe met Composer.
Raadpleeg bij een major-versie-upgrade van Socialite altijd de upgradegids.

Configuratie

config/services.php

Voeg de client-ID, secret en callback-URL van elke provider toe aan config/services.php.
Geef je bij de optie redirect een relatief pad op, dan wordt dit automatisch omgezet naar een volledige URL.

.env

Beheer de credentials via omgevingsvariabelen. Hier GitHub als voorbeeld.
Bij GitHub verkrijg je de client-ID en het secret door in de GitHub Developer Settings een OAuth App aan te maken.

Authenticatieflow

Routing

Voor OAuth-authenticatie zijn twee routes nodig: één voor de redirect en één voor de callback.

De gebruiker opslaan en inloggen

In de callbackroute haal je de gebruikersgegevens op, sla je ze op in de database en log je vervolgens in.
Bij gebruik van updateOrCreate moet de kolom github_id bestaan in de users-tabel. Zie het migratievoorbeeld verderop.

Gebruikersgegevens ophalen

Uit het object dat de user()-methode teruggeeft, haal je de gebruikersgegevens op via de volgende property’s en methoden.

Een gebruiker ophalen via een access token

Wil je gebruikersgegevens ophalen met een bestaand access token, gebruik dan userFromToken().
Gebruik je Facebook Limited Login in een iOS-app, dan geeft Facebook een OIDC-token terug in plaats van een access token. Om gebruikersgegevens uit een OIDC-token op te halen, geef je de nonce die bij het starten van de login is gebruikt door aan userFromToken().

Stateless modus

In API’s zonder cookiesessies kun je met de methode stateless() de validatie van de sessiestatus uitschakelen.

Databasekoppeling

Migratie

Voeg kolommen voor sociale login toe aan de users-tabel.

Meerdere providers ondersteunen met een provider-kolom

Wil je meerdere providers centraal beheren, dan is een opzet met de twee kolommen provider / provider_id gebruikelijk.
In de callbackverwerking geef je de providernaam dynamisch door.

Koppelen aan een bestaande gebruiker

Wil je een account koppelen aan een bestaande gebruiker met hetzelfde e-mailadres, zoek dan eerst op e-mailadres en werk daarna de kolommen bij.

Scopes en opties

Scopes toevoegen

Met de methode scopes() geef je extra scopes op.
Met de methode setScopes() overschrijf je alle bestaande scopes.

Optionele parameters

Met de methode with() neem je extra parameters op in het redirectrequest.
Let op dat je via de methode with() geen gereserveerde sleutelwoorden zoals state of response_type doorgeeft.

Slack-bottokens

Wil je een Slack-bottoken genereren, gebruik dan asBotUser().

Testen

Socialite biedt mockfunctionaliteit voor tests. Zo test je de OAuth-flow zonder echte requests naar de provider.

De redirect testen

De callback testen

Geef een gebruikersinstantie door aan de methode fake() om de door de provider teruggegeven gebruikersgegevens te mocken. Met User::fake() genereer je een fake-gebruiker.
Standaard worden er fake OAuth-tokenwaarden ingesteld. Indien nodig kun je die overriden door extra attributen aan fake() door te geven.
Wil je een OAuth 1-gebruiker faken, gebruik dan de klasse Laravel\Socialite\One\User.

Een custom provider maken

Wil je een andere provider gebruiken dan de ingebouwde, dan is het registreren van een custom driver via Socialite::extend() de officiële, aanbevolen weg. Omdat SocialiteManager erft van Illuminate\Support\Manager, kun je uitbreiden met hetzelfde mechanisme als bij andere Laravel-driversystemen.
Zie ook de uitleg over de Manager-klasse voor het Manager-patroon en hoe extend() werkt.

1. De providerklasse maken

Erf van Laravel\Socialite\Two\AbstractProvider en implementeer de vier abstracte methoden.
De rollen van de vier te implementeren methoden:

2. Registreren in een service provider

Registreer de driver met Socialite::extend() in de boot()-methode van je AppServiceProvider.

3. Configuratie toevoegen

4. Gebruiken zoals gewone Socialite

Na registratie gebruik je hem met exact dezelfde API als de ingebouwde providers.
Ook het gebruik van third-party pakketten die Socialite op de officiële manier via extend() uitbreiden is een aanrader.

Gerelateerde pakketten

Socialite-uitbreidingspakketten die de eigenaar van deze site heeft gepubliceerd. Ze zijn allemaal geïmplementeerd op de officiële manier via Socialite::extend() en werken door simpelweg de configuratie toe te voegen aan config/services.php.

LINE

LINE SDK voor Laravel. Naast OAuth-login via Socialite ook integratie met de Messaging API.

Bluesky

Integratie met het AT Protocol (Bluesky). Ondersteunt OAuth-authenticatie en het versturen van posts.

Discord

Discord OAuth2-login.

Threads

Integratie met Meta Threads. Ondersteunt OAuth-authenticatie en de post-API.

Amazon

OAuth-login via Login with Amazon.

Mastodon

OAuth-login op Mastodon-instances.

WordPress

OAuth-login op WordPress.com en self-hosted WordPress.
Laatst gewijzigd op 6 september 2026