概要
LaravelのSocialiteによるTwitter Loginにおいて、"Authenticate"から"Authorize"に変更する方法
環境情報
Laravel: 5.5.50
Socialite: 3.0
詳細
LaravelのSocialiteを用いると、容易にTwitter Loginを実装できますが、
デフォルトでは、"Authenticate"版のTwitter Loginとなります。
これを"Authorize"版のTwitter Loginに変更する方法です。
変更方法
(PJ Directory)/vendor/league/oauth1-client/src/Server/Twitter.phpにおけるurlAuthorization()メソッドを以下のように変更します。
【変更前】
public function urlAuthorization()
{
return 'https://api.twitter.com/oauth/authenticate';
}
【変更後】
public function urlAuthorization()
{
return 'https://api.twitter.com/oauth/authorize';
}
AuthenticateとAuthorizeの相違点
Authenticate;
一度Twitter Loginを実施すると、次回以降はログインボタンをクリックした後に、
自動的にログインされるようになります。
そのため、複数アカウントを所有するユーザにとって、使い勝手が悪くなります。
※Twitter側で明示的にログアウトした後に、当該サイトにアクセスしないとアカウントを切り替えられない。
※1アカウントのみで運用しているユーザは使い勝手が良いと思います。
※個人的には情報を覚えられているように感じて、気持ち悪く感じます。
Authorize;
ログインボタンを押すたびに、TwitterアカウントをAuthorizedするかどうか聞かれるようになります。
と言っても、ユーザは毎回ユーザ情報を入力する必要ないので、使い勝手はある程度残ります。
関連情報
Laravel 5.5にSocialiteの最新版を導入しようとすると、
エラーが出ますので、互換性があるSocialite3.0としています。
蛇足
今までは身内に教えることのみしていましたが、たまには記事を記載してアウトプットしようかと思います。