Для старта работы с Socialite, необходимо добавить в файл "composer.json" зависимость
composer require laravel/socialite
После установки библиотеки Socialite зарегистрируйте Laravel\Socialite\SocialiteServiceProvider в файле проекта config/app.php. Для этого пропишите его:
'providers' => [
// Другие сервис-провайдеры
Laravel\Socialite\SocialiteServiceProvider::class,
],
Затем в файле "app" необходимо добавить в массив aliases элемент:
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
Для каждой социальной сети необходимо добавить учётные данные для OAuth авторизации. Делается это в файле config/services.php. К примеру, вот учётные данные для github:
'github' => [
'client_id' => 'your-github-app-id',
'client_secret' => 'your-github-app-secret',
'redirect' => 'https://callback-url',
],
После выполнения всех этих действий можно проводить авторизацию пользователей. Для этого необходимо создать два маршрута. Первый для перенаправления на провайдер OAuth, а второй для получения информации от соцсети.
<?php
namespace App\Http\Controllers;
use Socialite;
use Illuminate\Routing\Controller;
class AuthController extends Controller{
// переадресация на страницу входа github
public function redirectToProvider() {
return Socialite::driver('github')->redirect();
}
// получение данных пользователя github
public function handleProviderCallback() {
$user = Socialite::driver('github')->user();
// ключи пользователя
$token = $user->token;
$tokenSecret = $user->tokenSecret;
// данные пользователя
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();
}
}
?>
После этого необходимо создать маршруты для контроллера
<?php
Route::get('auth/github', 'Auth\AuthController@redirectToProvider');
Route::get('auth/github/callback', 'Auth\AuthController@handleProviderCallback');
?>