Социальные провайдеры Lumen 5.5 не работают с setConfig ()

я использую Поставщики Laravel Socialite (https://socialiteproviders.github.io/), чтобы войти в систему через Lumen 5.5 API.
setConfig () метод, чтобы заставить конфиг, у меня не работает …

Здесь ниже моя ошибка и мой код. Проблема в том, что я не знаю, почему у меня есть эта ошибка.

Ошибка отображения:

Ошибка типа: аргумент 1 передан
Laravel \ Socialite \ SocialiteManager :: formatConfig () должен иметь тип
массив с нулевым значением, вызванный в
/home/vagrant/www/project1/api.website.app/vendor/laravel/socialite/src/SocialiteManager.php
на линии 125

Код 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();

0

Решение

Вам необходимо настроить services Конфигурация первая! Создать services.php файл внутри config папку (вы можете создать эту, если у вас ее еще нет).

файл 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]