Laravel-Socialite でソーシャルログイン機能を実装する


ソーシャルログイン機能を実装する

まずは、環境をインストール

composer create-project --prefer-dist laravel/laravel rose "5.4.*"
composer require laravel/socialite

Sqlite 設定

touch database/database.sqlite

設定ファイル編集

vi .env

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=homestead
#DB_USERNAME=homestead
#DB_PASSWORD=secret

GITHUB_CLIENT_ID=0000000000000000
GITHUB_CLIENT_SECRET=000000000000000000000000
GITHUB_REDIRECT=http://127.0.0.1:8000/auth/github/callback

ソーシャルログイン設定

vi config/app.php

'providers' => [
        /*
         * Package Service Providers...
         */
        Laravel\Socialite\SocialiteServiceProvider::class,

'aliases' => [
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,

vi config/services.php

    'github' => [
        'client_id' => 'your-github-app-id',
        'client_secret' => 'your-github-app-secret',
        'redirect' => 'http://your-callback-url',
    ],

Value値は、以下ページの Oauth applications リンクから設定を行う

vi app/Http/Controllers/Auth/AuthController.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Socialite;

class AuthController extends Controller
{
    /**
     * Redirect the user to the GitHub authentication page.
     *
     * @return Response
     */
    public function redirectToProvider()
    {
        return Socialite::driver('github')->redirect();
    }

    /**
     * Obtain the user information from GitHub.
     *
     * @return Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::driver('github')->user();

        // $user->token;
    }
}

vi routes/web.php

Route::get('auth/github', 'Auth\AuthController@redirectToProvider');
Route::get('auth/github/callback', 'Auth\AuthController@handleProviderCallback');

Login Page Setting.

php artisan vendor:publish
php artisan make:auth

Server Start

php artisan serve

以下URLにアクセスすると、Githubの認証画面が表示されるはず。