Laravel Socialite сводит вход через OAuth 2 (GitHub, Google, Facebook и др.) к нескольким методам. Пользователь не придумывает пароль, а вы получаете профиль, подтверждённый провайдером.

Как это работает

Поток из шести шагов: пользователь нажимает кнопку, приложение перенаправляет на провайдера, пользователь соглашается, провайдер возвращает его на callback с code, приложение меняет code на токен и получает профиль.

Поток OAuth со Socialite
Поток OAuth со Socialite

Установка и настройка

bash
composer require laravel/socialite

Создайте OAuth-приложение в панели провайдера (GitHub: Settings → Developer settings → OAuth Apps; Google: Cloud Console → Credentials), укажите callback-адрес и положите ключи в .env:

bash
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
php
// config/services.php
'github' => [
    'client_id' => env('GITHUB_CLIENT_ID'),
    'client_secret' => env('GITHUB_CLIENT_SECRET'),
    'redirect' => '/auth/github/callback',
],

'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect' => '/auth/google/callback',
],

⚠️ Callback-адрес должен символ в символ совпадать с указанным у провайдера (http/https, порт, путь).

Маршруты и redirect

php
// routes/web.php
use App\Http\Controllers\SocialAuthController;