之前我在session.php中更改了domian,我的Auth :: login()工作正常,它会保留cookie,所以他们不需要再次登录。当我的一些朋友告诉我,当他们点击登录(来自Facebook)时,它会以某种方式返回AbstractProvider.php中的InvalidStateException。
我谷歌周围知道可能存在一些由cookie导致的问题,解决方案是将session.php中的域从null更改为我的域(例如myapps.com)。
在我更改为myapps.com后,不再出现invalidstateException,但它不会持续登录。经过6-12个小时,它需要我再次登录。
以下是我的代码(我相信我的代码在我更改会话之后是正确的,并且登录将不再存在)。
$UserLogin = User::where('facebook_id', '=', $user->getId())->first();
Auth::login($UserLogin, true);
答案 0 :(得分:4)
核心问题是,您的浏览器会将来自多个域的两个Cookie 存储为名为laravel_session
的相同Cookie名称;当您发出请求时,两个具有相同名称的cookie都将发送到服务器。
在config/session.php
:
//change this
'cookie' => 'laravel_session'
//and this
'domain' => 'my_domain'
通过更改cookie
和domain
的名称,您可以通过以新名称存储新Cookie来解决问题。
答案 1 :(得分:0)
这是因为浏览器中存储的旧 cookie 会干扰您设置的新域。
为了让您的登录再次工作,在配置文件中设置域后清除浏览器 cookie