簡體   English   中英

流明5.5社交名流提供程序不適用於setConfig()

[英]Lumen 5.5 Socialite Providers doesn't works with setConfig()

我使用Laravel Socialite Providershttps://socialiteproviders.github.io/ )在Lumen 5.5 API上登錄用戶。 setConfig()方法,強制配置,不適用於我...

下面是我的錯誤和代碼。 問題是我不知道為什么會有這個錯誤。

顯示錯誤:

類型錯誤:傳遞給Laravel \\ Socialite \\ SocialiteManager :: formatConfig()的參數1必須為數組類型,給定為null,在/home/vagrant/www/project1/api.website.app/vendor/laravel/socialite/中調用第125行的src / SocialiteManager.php

PHP代碼:

$clientId = env('TWITTER_KEY');
$clientSecret = env('TWITTER_SECRET');
$redirectUrl = env('TWITTER_REDIRECT_URI');
$additionalProviderConfig = [];
$config = new SocialiteConfig($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig);

return Socialite::with('twitter')->stateless()->setConfig($config)->redirect();

您需要先配置services配置! config文件夾中創建一個services.php文件(如果尚未創建,則可以創建此文件)。

文件services.php

return [
    'twitter' => [
        'client_id' => env('TWITTER_KEY'),
        'client_secret' => env('TWITTER_SECRET'),
        'redirect' => env('TWITTER_REDIRECT_URI'),
    ]
];

您的代碼應如下所示:

use Laravel\Socialite\Facades\Socialite;

// You may not this one, read below explanation
app()->configure('services');

return Socialite::with('twitter')->stateless()->redirect();

最好將configure行移到bootstrap/app.php文件中:

// Just right before register SocialiteProvider
$app->configure('services');
$app->register(SocialiteProviders\Manager\ServiceProvider::class);

如果您已經移動了configure ,那么您的代碼現在應該是:

use Laravel\Socialite\Facades\Socialite;

return Socialite::with('twitter')->stateless()->redirect();

PS:

如果調用了未定義的stateless方法,則意味着您尚未設置偵聽器,可以在此處閱讀。 打開您的App\\Providers\\EventServiceProvider ,添加以下行:

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'App\Events\SomeEvent' => [
            'App\Listeners\EventListener',
        ],

        'SocialiteProviders\Manager\SocialiteWasCalled' => [
            'SocialiteProviders\Twitter\TwitterExtendSocialite@handle',
        ]
    ];
}

並且不要忘記將此行添加到bootstrap/app.php文件中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM