[Laravel5.5] Socialiteでtokenを使い回す

Laravelにてソーシャルログインなどの実装はSocialiteパッケージにて簡単に実装が可能です。

Laravel 5.5 Laravel Socialite

Socialiteのおかげで簡単に実装できますが、各プロバイダ(Facebook,Twitterなど)でのアプリの登録と設定が必要ですので、手間がかかりそこらへんの経験値が無いと簡単とは言えないですね。

OAuthにてログイン認証はできたけど、TwitterアイコンやFacebookのアバターを取得したい。またはFacebookにてメアドと名前を取りたい。などの場合はCallbackで認証データを一度取得します。

認証後にtokenを使って各APIをコールしたい場合も認証時に取得するデータにありますので、取得データをセッションなどに保存しておいたほうが実用的ですね。

ソーシャルプロバイダのcallbackを受け、sessionへtokenを保存する例

    /**
     * ソーシャルサービスからのCallBack
     *
     * @return Response
     */
    public function handleProviderCallback(\App\SocialAccountService $accountService, $provider)
    {

        try
        {
            $user = \Socialite::with($provider)->user();
            session(['social_me' => $user]);
        }
        catch (\Exception $e)
        {
            return redirect('/login');
        }

ここまできたら各ソーシャルプロバイダのドキュメントを確認してデータを自在に取得しましょう!

Twitter API
https://developer.twitter.com/en/docs/api-reference-index

Facebook API
https://developers.facebook.com/docs/reference/php

ソーシャルからのユーザーの流入や回遊、登録やログインの簡素化を図ることができるソーシャル連携はサービスによっては必須となってきますね。

簡単に実装ができる様になれば開発も楽しくなります  😛

シェアする

  • このエントリーをはてなブックマークに追加

フォローする