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'),
],
这发生在我刚刚在这里阅读以下后在计算器上后固定它:
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
尝试这些
- 检查,如果你有你的所有社交媒体的config/services.php
-
在您注册或登录页面查询网址对应于facebook
a href="{{ url('/login/facebook') }}"
-
前往路线,并检查您是否已经正确配置
Route::get('login/{social}', 'Auth\[email protected]'); Route::get('login/{social}/callback', 'Auth\[email protected]');
-
开放认证/ LoginController中的路线,并检查是否有
use Socialite; public function redirectToProvider($social) { Socialite::driver($social)->redirect(); } public function handleProviderCallback($social) { $user = Socialite::driver($social)->user(); }
正如你所提到的你只是面对Facebook的错误,我很确定它必须在前三步
我在我的配置/ services.php。但它不能从vendor/laravel/socialite/src/SocialiteManager.php中读取。我可以访问services.php中的所有其他数组,除了facebook凭据。我不知道为什么。 –