Laravel 5.4 Laravel Socialite

(laravel.comの公式にはSocialiteのドキュメントページは存在していません。

イントロダクション

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

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

他のプラットフォーム向けのアダプタは、コミュニティが管理する、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();

ドキュメント章別ページ

公式パッケージ

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる