やりたいこと
- 表題の通り、laravel/socialiteで、twitterやfacebookのアカウント認証はできるようになったが、LINEやYahoo!JAPANのアカウントでも認証できるようにしたい。
- とりあえずは、こんな面倒な手順に従えばできるんだけど、こんなこと毎度毎度やりたくないんだけど。どうにかならんもんかね?
というわけで、つくりました
Packagist
注意書き
- ご使用は自己責任でお願いします。
- コメとかで認証サービスの追加要望を頂いたら実装するかもしれません。
- プルリク頂いたらマージするかもしれません。
- 個人的にゆるくやってみた感じなんで、バージョン番号とかはへんなコミット履歴とかは温かい目で見てやってくださいw
- forkしたりコピーしたりってこともご自由にどうぞ。
- 今後もプロバイダとかはゆるゆると追加すると思います。
導入手順
パッケージインストール
-
以下のコマンドを実行
cd your/laravel/project/path composer require ringo-project/socialite
設定変更
-
SocialiteServiceProviderの向き先を変更する。
config/app.php<?php return [ // ... 'providers' => [ // ... //Laravel\Socialite\SocialiteServiceProvider::class, //除外 RingoProject\Socialite\SocialiteServiceProvider::class, //追加 // ... ], // ... 'aliases' => [ // ... 'Socialite' => Laravel\Socialite\Facades\Socialite::class, // ... ], ];
-
config/services.phpを編集する。
config/services.php<?php return [ // ... 'line' => [ 'client_id' => env('LINE_CLIENT_ID'), 'client_secret' => env('LINE_CLIENT_SECRET'), 'redirect' => env('LINE_REDIRECT'), ], 'yahoo' => [ 'client_id' => env('YAHOO_CLIENT_ID'), 'client_secret' => env('YAHOO_CLIENT_SECRET'), 'redirect' => env('YAHOO_REDIRECT'), ], // ... ];
-
.env.xxxxxを編集
.env.xxxxx# ... LINE_CLIENT_ID=(your-line-client-id) LINE_CLIENT_SECRET=(your-line-client-secret) LINE_REDIRECT=(your-line-redirect-url) YAHOO_CLIENT_ID=(your-yahoo-client-id) YAHOO_CLIENT_SECRET=(your-yahoo-client-secret) YAHOO_REDIRECT=(your-yahoo-redirect-url) # ...
認証実行
- あとは、Laravel 5.3で外部アカウントを使用した認証機能を実装する方法に書いたコントローラの作成以下の手順を、それぞれのプロバイダ名に読み替えて実装すれば完成。