Skip to main content

Qu’est-ce que Laravel Socialite

Laravel Socialite est le package officiel qui simplifie le login social via OAuth 2.0. Il prend en charge les principaux providers (GitHub, Google, Facebook, X (Twitter), LinkedIn…) et remplace une implémentation OAuth complexe par quelques lignes. Providers intégrés :

Flux


Installation

Consultez le guide de mise à jour lors d’une montée de version majeure.

Configuration

config/services.php

Ajoutez client ID, secret et URL de callback par provider.
Un chemin relatif dans redirect est automatiquement résolu en URL complète.

.env

Créez une OAuth App dans GitHub Developer Settings pour obtenir vos identifiants.

Flux d’authentification

Routing

Deux routes : redirection et callback.

Enregistrement + login

Dans le callback, enregistrez l’utilisateur puis connectez-le.
updateOrCreate nécessite la colonne github_id sur la table users. Voir la migration ci-après.

Récupérer les informations utilisateur

Sur l’objet retourné par user() :

Depuis un access token existant

Mode stateless

Pour une API sans cookies de session, stateless() désactive la vérification d’état.

Intégration DB

Migration

Ajoutez les colonnes de login social.

Colonnes provider pour plusieurs providers

Callback dynamique :

Rattachement à un utilisateur existant

Cherchez par e-mail avant de créer.

Scopes et options

Scopes

setScopes() remplace complètement les scopes.

Paramètres optionnels

with() ajoute des paramètres à la redirection.
N’utilisez pas with() pour des mots-clés réservés comme state ou response_type.

Token bot Slack

Pour un token bot Slack, asBotUser().

Tests

Socialite propose un moteur de mock.

Redirection

Callback

User::fake() crée un utilisateur factice.
Par défaut, un token factice est fourni. Vous pouvez surcharger.
Pour OAuth 1, utilisez Laravel\Socialite\One\User.

Provider personnalisé

Utilisez Socialite::extend() pour ajouter un driver. SocialiteManager hérite de Illuminate\Support\Manager, comme les autres systèmes de driver Laravel.
Voir aussi Classe Manager pour le pattern et extend().

1. Classe du provider

Héritez de Laravel\Socialite\Two\AbstractProvider et implémentez 4 méthodes.
Rôle des 4 méthodes :

2. Enregistrement dans le service provider

Dans boot() de AppServiceProvider.

3. Ajouter la configuration

4. Utilisation standard

Vous pouvez également utiliser des packages tiers qui étendent Socialite de manière propre via extend().

Packages associés

Extensions Socialite publiées par le propriétaire de ce site, implémentées correctement via Socialite::extend().

LINE

SDK LINE : Socialite + Messaging API.

Bluesky

Intégration AT Protocol : OAuth + publication.

Discord

OAuth2 Discord.

Threads

OAuth + API de publication Meta Threads.

Amazon

Login with Amazon.

Mastodon

OAuth vers une instance Mastodon.

WordPress

WordPress.com et WordPress auto-hébergé.
Dernière modification le 13 juillet 2026