Laravel名媛:InvalidStateException在AbstractProvider.php线路199:
问题描述:
出于某种原因,当我尝试用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缓存等。不行。
答
我发现我的Laravel应用程序cookie丢失,导致InvalidStateException异常。
我还注意到,在每个HTTP请求后都没有重新创建cookie。当我将Config/Session.php中的域值从当前的域(“本地主机”)更改为空(默认值)时,再次重新创建了cookie。
答
尝试
session()->put('state', $request->input('state'));
$user = Socialite::driver('facebook')->user();
我遇到了类似的事情时,我使用的是无状态的API ...检查了这https://laracasts.com/discuss/channels/general-discussion/social-integration-without- using-the-session?page = 1 – Sherif
谢谢。我还没有查看智威汤逊,但我目前正在使用Laravel会话(作为文件存储)。 – Olof84