2016-12-15 61 views
0

出於某種原因,當我嘗試用Laravel社會名流登錄任何與Facebook或谷歌我得到這個異常:Laravel名媛:InvalidStateException在AbstractProvider.php線路199:

InvalidStateException在AbstractProvider.php線路199:

當我試圖從Facebook驅動程序獲取用戶時,從我的SocialiteController中拋出異常。

public function callback(SocialAccountService $service, $provider) 
    { 
     try { 
      var_dump(Socialite::driver('facebook')->user()); 

下面是似乎拋出實際的異常AbstractProvider.php部分:

public function user() 
{ 
    if ($this->hasInvalidState()) { 
    throw new InvalidStateException; 
} 

我一直在關注這個教程https://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-twitter-login.html#.WFK0BfnhCUk。由於某種原因,登錄工作正常,直到上週。

我讀了其他文章說我應該改變config/session.php,使得域不爲空,但是我的當前域(在我的例子中是localhost:8000,因爲我使用XAMPP運行本地),並刷新Laravel緩存等。不行。

+0

我遇到了類似的事情時,我使用的是無狀態的API ...檢查了這https://laracasts.com/discuss/channels/general-discussion/social-integration-without- using-the-session?page = 1 – Sherif

+0

謝謝。我還沒有查看智威湯遜,但我目前正在使用Laravel會話(作爲文件存儲)。 – Olof84

回答

1

我發現我的Laravel應用程序cookie丟失,導致InvalidStateException異常。

我還注意到,在每個HTTP請求後都沒有重新創建cookie。當我將Config/Session.php中的域值從當前的域(「本地主機」)更改爲空(默認值)時,再次重新創建了cookie。

-1

嘗試

session()->put('state', $request->input('state')); 
$user = Socialite::driver('facebook')->user();