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

PHP
スポンサーリンク

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

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

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

 

スポンサーリンク

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

 

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

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

 

 

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

 

[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します。

 

また、エラー。。。

[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します。

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

 

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

 

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

コメント