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 aanconfig/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.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.Gebruikersgegevens ophalen
Uit het object dat deuser()-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 danuserFromToken().
userFromToken().
Stateless modus
In API’s zonder cookiesessies kun je met de methodestateless() de validatie van de sessiestatus uitschakelen.
Databasekoppeling
Migratie
Voeg kolommen voor sociale login toe aan deusers-tabel.
Meerdere providers ondersteunen met een provider-kolom
Wil je meerdere providers centraal beheren, dan is een opzet met de twee kolommenprovider / provider_id gebruikelijk.
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 methodescopes() geef je extra scopes op.
setScopes() overschrijf je alle bestaande scopes.
Optionele parameters
Met de methodewith() neem je extra parameters op in het redirectrequest.
Slack-bottokens
Wil je een Slack-bottoken genereren, gebruik danasBotUser().
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 methodefake() om de door de provider teruggegeven gebruikersgegevens te mocken. Met User::fake() genereer je een fake-gebruiker.
fake() door te geven.
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 viaSocialite::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 vanLaravel\Socialite\Two\AbstractProvider en implementeer de vier abstracte methoden.
2. Registreren in een service provider
Registreer de driver metSocialite::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.Gerelateerde pakketten
Socialite-uitbreidingspakketten die de eigenaar van deze site heeft gepubliceerd. Ze zijn allemaal geïmplementeerd op de officiële manier viaSocialite::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.