Laravel 5.5社交网站集成显示错误formatRedirectUrl()必须是数组类型,null给出

问题描述:

我正在使用“laravel/socialite”:“^ 3.0”,来登录facebook。但它表明 错误Laravel 5.5社交网站集成显示错误formatRedirectUrl()必须是数组类型,null给出

Type error: Argument 1 passed to Laravel\Socialite\SocialiteManager::formatRedirectUrl() must be of the type array, null given, called in /var/www/html/mas/vendor/laravel/socialite/src/SocialiteManager.php.

当我打电话下面的函数在我登录控制器

public function socialLogin($social) 
{ 
    return Socialite::driver($social)->redirect(); 
} 

嗨,你缺失给社会化媒体的凭据提出,在配置/服务它发生。 PHP

'facebook' => [ 
     'client_id' => env('FACEBOOK_CLIENT_ID'), 
     'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 
     'redirect' => env('CALLBACK_URL_FACEBOOK'), 
    ], 
    'google' => [ 
     'client_id' => env('GOOGLE_CLIENT_ID'), 
     'client_secret' => env('GOOGLE_CLIENT_SECRET'), 
     'redirect' => env('CALLBACK_URL_GOOGLE'), 
    ], 
    'twitter' => [ 
     'client_id' => env('TWITTER_CLIENT_ID'), 
     'client_secret' => env('TWITTER_CLIENT_SECRET'), 
     'redirect' => env('CALLBACK_URL_TWITTER'), 
    ], 
    'linkedin' => [ 
     'client_id' => env('LINKEDIN_CLIENT_ID'), 
     'client_secret' => env('LINKEDIN_CLIENT_SECRET'), 
     'redirect' => env('CALLBACK_URL_LINKEDIN'), 
    ], 
    'instagram' => [ 
     'client_id' => env('INSTAGRAM_CLIENT_ID'), 
     'client_secret' => env('INSTAGRAM_CLIENT_SECRET'), 
     'redirect' => env('CALLBACK_URL_INSTAGRAM'), 
    ], 
+0

我在我的配置/ services.php。但它不能从vendor/laravel/socialite/src/SocialiteManager.php中读取。我可以访问services.php中的所有其他数组,除了facebook凭据。我不知道为什么。 –

这发生在我刚刚在这里阅读以下后在计算器上后固定它:

Why do I have to run "composer dump-autoload" command to make migration work in laravel

的解决方案基本上是运行以下命令:

php artisan clear-compiled composer dump-autoload php artisan optimize

您必须清除配置缓存文件,怎么样?如果您使用php artisan,您将看到命令config:clear。运行:

php artisan config:clear 

现在如果你访问Laravel \社会名流\ SocialiteManager :: createFacebookDriver() 内$配置变量,你会得到存储在配置/ services.facebook(脸谱,对于配置元素例如)之前对于Socialite不可见。

总之:运行php artisan config:clear

尝试这些

  1. 检查,如果你有你的所有社交媒体的config/services.php
  2. 在您注册或登录页面查询网址对应于facebook

    a href="{{ url('/login/facebook') }}"

  3. 前往路线,并检查您是否已经正确配置

    Route::get('login/{social}', 'Auth\[email protected]'); Route::get('login/{social}/callback', 'Auth\[email protected]');

  4. 开放认证/ LoginController中的路线,并检查是否有

    use Socialite; public function redirectToProvider($social) { Socialite::driver($social)->redirect(); } public function handleProviderCallback($social) { $user = Socialite::driver($social)->user(); }

正如你所提到的你只是面对Facebook的错误,我很确定它必须在前三步