Laravelでソーシャルログイン用のSocialiteをインストールしようとするとSocialiteServiceProvider not found

LaravelでFacebookやTwitter、Google+などのアカウントを使ってログインするソーシャルログインを実装しようしました。

Laravelには、すでに先人がSocialiteというプラグインを作ってくれているので、これを使うことにしました。

Socialiteをインストールしようと、composer updateコマンドの途中でエラーが出て、ハマったので回避方法をメモしました。
image

スポンサーリンク
スポンサーリンク

composer updateでfailed to open stream: No such file or directory autoload_real.php

私の開発環境では、長い間、composer updateしていなかったので、各パッケージが古い可能性があります。

そこで、まず、最初に、Laravelのホームディレクトリで composer update コマンドを実行してみました。

image

image

古いパッケージがどんどんアップデートされるのですが、途中でエラーになってしまいました。

[UnexpectedValueException]

RecursiveDirectoryIterator::_construct

failed to open stream: No such file or directory in xxx\vendor\composer\autoload_real.php on line 54

Fatal error: require(): Failed opening required 'xxxx\vendor\laravel-ja\compja5\helper.php'

うーん。。。

ちょっとどうしようもなくなったので、composerを再インストールすることにしました。

再インストールするには、

vendorフォルダと、composer.lockファイルを削除して、composer installします。

これで、無事にcomposerがインストール出来ました。

Class 'Laravel\Socialite\SocialiteServiceProvider' not found

これでやっとSocialiteをインストールすることが可能になります。

composer.jsonを編集して以下を追加します。

次に、config/app.phpを編集して以下を追加します。

この後、composer updateします。

image

また、エラー。。。

[RuntimeException] Error Output:

[Symfony\Component\Debug\Exception\FatalErrorException] Class 'Laravel\Socialite\SocialiteServiceProvider' not found

困った。。。????????

いろいろ調べてみて原因がわかりました。

composer.jsonにsocialiteを追加して、そのまま、何もせずに直後に、config/app.phpにSocialiteServiceProviderを追加するのがよくないようです。

こうしてしまうと、socialiteがインストールされていないにも関わらず、SocialiteServiceProviderを探しにいって見つからないからエラーになるようです。

よって、config/app.phpに追加した変更を削除してから、composer updateします。

image

これで、socialiteがインストールされたので、config/app.phpに、先ほど削除した行を戻しておきます。

今からようやくソーシャルログインの実装が出来ます。

最後まで読んでいただきありがとうござました。
この記事が気に入っていただけたらシェアしてくれると嬉しいです。