2017-11-18 204 views
1

我正在使用「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(); 
} 

回答

1

嗨,你缺失給社會化媒體的憑據提出,在配置/服務它發生。 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憑據。我不知道爲什麼。 –

1

您必須清除配置緩存文件,怎麼樣?如果您使用php artisan,您將看到命令config:clear。運行:

php artisan config:clear 

現在如果你訪問Laravel \社會名流\ SocialiteManager :: createFacebookDriver() 內$配置變量,你會得到存儲在配置/ services.facebook(臉譜,對於配置元素例如)之前對於Socialite不可見。

總之:運行php artisan config:clear

0

嘗試這些

  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的錯誤,我很確定它必須在前三步

相關問題