Вход через социальные сервисы Laravel

Помимо функций для авторизации на основе формы в Laravel также есть способ аутентификации с помощью провайдеров OAuth, используя "Socialite". Этот способ входа поддерживает аутентификацию через Facebook, Twitter, LinkedIn, Google, GitHub и Bitbucket.

Для старта работы с 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');
?>
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб

⇡ наверх