(laravel.comの公式にはSocialiteのドキュメントページは存在していません。GitHubのScialiteリポジトリへリンクしてあります。以下はリポジトリのreadme.mdページを翻訳したものです。)

イントロダクション

Laravel Scialite(ソシエリート:名士)は、Facebook、Twitter、Google、LinkedIn、GitHub、BitbucketのOAuth認証への記述的で読み書きしやすいインターフェイスを提供します。書くのが面倒な、ソーシャル認証の定例的なコードのほぼすべてを処理します。

Note: 新しいアダプタは受け付けていません

他のプラットフォーム向けのアダプタは、コミュニティが管理する、Socialite Providers Webサイトにリストされています。

ライセンス

Laravel Socialiteは、MITライセンスのオープンソースソフトウェアです。

公式ドキュメント

典型的なフォームベースの認証に付け加え、LaravelはLaravel Socialiteを使用したOAuthによる、シンプルで、便利な認証方法を提供しています。Socialiteは現在、Facebook、Twitter、LinkedIn、Google、GitHub、Bitbucketによる認証をサポートしています。

Socialiteを使用開始するには、依存パッケージとしてcomposer.jsonファイルへ追加してください。

composer require laravel/socialite

設定

Scialiteライブラリがインストールできたら、config/app.php設定ファイルへ、Laravel\Socialite\SocialiteServiceProviderを登録します。

'providers' => [
    // その他のサービスプロバイダ…

    Laravel\Socialite\SocialiteServiceProvider::class,
],

さらに、app設定ファイルで、aliases配列にSocialiteファサードを追加します。

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

さらに、アプリケーションで使用するOAuthサービスの認証情報を追加する必要があります。これらの情報はconfig/services.php設定ファイルへ設置し、アプリケーションで提供するプロバイダに応じて、facebooktwitterlinkedingooglegithubbitbucketをキーとして使用します。例をご覧ください。

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

基本的な使用方法

これで、ユーザを認証する準備が整いました! 2つのルートが必要です。OAuthプロバイダへユーザをリダイレクトするものと、認証後にプロバイダのコールバックを受け取るものです。Socialiteには、Socialiteファサードを使いアクセスします。

<?php

namespace App\Http\Controllers\Auth;

use Socialite;

class AuthController extends Controller
{
    /**
     * ユーザをGitHub認証ページヘリダイレクトする
     *
     * @return Response
     */
    public function redirectToProvider()
    {
        return Socialite::driver('github')->redirect();
    }

    /**
     * GitHubからユーザ情報を取得する
     *
     * @return Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::driver('github')->user();

        // $user->token;
    }
}

redirectメソッドはOAuthプロバイダへユーザを送る面倒を見ます。userメソッドは送信されてきたリクエストを読み込み、プロバイダからユーザの情報を取得します。ユーザをリダイレクトする前に、scopeメソッドを用いて、リクエストに「スコープ」をセットすることもできます。このメソッドは既存のスコープをすべて上書きします。

return Socialite::driver('github')
            ->scopes(['scope1', 'scope2'])->redirect();

もちろん、コントローラメソッドへのルートを定義する必要があります。

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

多くのOAuthプロバイダはリダイレクトリクエストで、オプションのパラメータをサポートしています。リクエストにオプションパラメータを含めるには、withメソッドへ連想配列を渡し、呼び出します。

return Socialite::driver('google')
            ->with(['hd' => 'example.com'])->redirect();

withメソッドを使用する場合、stateresponse_typeのような予約後を渡さないように、気をつけてください。

ユーザの詳細情報の取得

ユーザインスタンスが獲得できたら、より詳細な情報を取得できます。

$user = Socialite::driver('github')->user();

// OAuth Two プロバイダ
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;

// OAuth One プロバイダ
$token = $user->token;
$tokenSecret = $user->tokenSecret;

// 全プロバイダ
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();