【问题标题】:Driver [provider] not supported laravel/socialite驱动程序 [provider] 不支持 laravel/socialite
【发布时间】:2018-01-15 05:42:03
【问题描述】:

我正在使用 Laravel 5.4 和 Socialite 3.0

对于我添加的每个新社交名流提供商,我都会收到错误消息:

不支持驱动程序[提供者]。

例如,当添加 socialiteproviders/twitch 3.0 时,我会收到错误:

不支持驱动程序 [twitch]。

但是,我可以使用 Socialite 中已内置的提供程序,例如 github 可以按预期工作。

我尝试了三个不同的提供商,每次都得到相同的结果,我做错了什么?

这是我的路线:

Route::get('/auth/bnet', 'BnetController@redirectToProvider');

Route::get('/auth/bnet/return', function() {
    $user = Socialite::driver('battlenet')->user();
    dd($user->accessTokenResponseBody);
});

Route::get('/auth/git', function() {
    return Socialite::driver('github')->redirect();
});

Route::get('/auth/twitch', function() {
    return Socialite::with('twitch')->redirect();
});

这是我的 EventServiceProvider 的 $listen:

    protected $listen = [
      \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // add your listeners (aka providers) here
        //'SocialiteProviders\Battlenet\BattlenetExtendSocialite@handle',
        'Reflex\SocialiteProviders\BattleNet\BattleNetExtendSocialite@handle',
        'SocialiteProviders\Twitch\TwitchExtendSocialite@handle',
      ],
    ];

我已将 SocialiteProviders\Manager\ServiceProvider::class 添加到 app.php 中的 providers 数组中,我已将 Socialite 外观 ('Socialite' => Laravel\Socialite\Facades\Socialite::class,) 添加到我的别名数组也在 app.php 中,并在我的 .env 中添加了适当的键

【问题讨论】:

    标签: laravel laravel-socialite


    【解决方案1】:

    我遇到了同样的问题,我找到了解决方案。

    在 config/app.php 提供者数组中:

    'providers' => [
        // ...
        Laravel\Socialite\SocialiteServiceProvider::class,
        \SocialiteProviders\Manager\ServiceProvider::class,
        // ...
    ]
    

    在 app/Providers/EventServiceProvider.php 中:

    protected $listen = [
    // ...
        \SocialiteProviders\Manager\SocialiteWasCalled::class => [
            'SocialiteProviders\VKontakte\VKontakteExtendSocialite@handle',
        ],
    ]
    

    您在“SocialiteProviders\Twitch\TwitchExtendSocialite@handle”的开头错过了 \。

    【讨论】:

      【解决方案2】:

      希望这对某人有所帮助,但我发现我必须用“\\”而不是“\”来分隔 EventServiceProvider.php 监听类。拉拉维尔 5.6。例如:

      protected $listen = [
          \SocialiteProviders\Manager\SocialiteWasCalled::class => [
              'SocialiteProviders\\Twitch\\TwitchExtendSocialite@handle',
              'SocialiteProviders\\Podio\\PodioExtendSocialite@handle',
          ],
      

      如果您仍然在苦苦挣扎,请三重检查以确保所有软件包都已安装。

      我还发现包括...

      Laravel\Socialite\SocialiteServiceProvider::class,
      

      ...在使用 SocialiteProviders\Manager 时,不需要在您的 config/app.php 中。

      【讨论】:

      • 包含 Laravel\Socialite\SocialiteServiceProvider::class 会导致问题。
      【解决方案3】:

      确保您已更新 config/services.php 以包含来自您的提供商的 client_id client_secretredirect

      清除您的配置并重试。

      【讨论】:

        【解决方案4】:

        在此处添加答案,因为在搜索与 Lumen 相关的相同错误时会出现此问题,并且我怀疑其他人可能会遇到与我相同的问题。

        其他提供程序的Lumen-specific documentation 似乎没有提到一些陷阱(至少对于我的 Lumen 版本而言),与 Laravel 相比,Lumen 需要一些额外的配置才能工作。

        我正在使用 Lumen 5.8.2,并且越来越沮丧地让 Socialite 设置了其他提供商 - 我在 bootstrap/app.phpEventServiceProvider.php 中的所有配置似乎都是正确的(并且是),直到我意识到 Lumen 不是t 实际注册 EventServiceProvider 本身。

        要解决此问题,请在您的 bootstrap/app.php 设置中注册 EventServiceProvider:

        $app->register(App\Providers\EventServiceProvider::class);

        注册了 EventServiceProvider 后,只需参考这里的其他答案来配置事件,提供者的服务配置和在 app.php 中注册社交名流,你应该很好。

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,为了解决它,我更改了 bootstrap/app.php 配置的顺序,尝试移动事件服务提供者之后的下一行:

          $app->register(\SocialiteProviders\Manager\ServiceProvider::class);
          class_alias(Laravel\Socialite\Facades\Socialite::class, 'Socialite');
          //$app->register(Laravel\Socialite\SocialiteServiceProvider::class);
          

          之后:

          $app->register(App\Providers\EventServiceProvider::class);
          

          我的问题是因为我之前声明了所有 Socialite 和 SocialiteProvider 的东西。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-07-29
            • 2016-09-09
            • 1970-01-01
            相关资源
            最近更新 更多