Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用社交登录获取用户详细信息时出错_Php_Laravel - Fatal编程技术网

Php 使用社交登录获取用户详细信息时出错

Php 使用社交登录获取用户详细信息时出错,php,laravel,Php,Laravel,我拥有社交名流登录功能: public function login() { return Socialite::driver('facebook')->redirect(); } public function callback() { return redirect('/')->with('message','Logged in!!'); } 回调函数仅重定向到主页,其中有一个表单要添加,一首歌曲: public function add(Request

我拥有社交名流登录功能:

public function login()
{ 
    return Socialite::driver('facebook')->redirect();
}

public function callback()
{
     return redirect('/')->with('message','Logged in!!');
}
回调函数仅重定向到主页,其中有一个表单要添加,一首歌曲:

 public function add(Request $request)
    {
          $newSong = new Song();
          $newSong->name=$request->song;
          $newSong->added_by=Socialite::driver('facebook')->user()->name;
          $nrwSong->save();
   }
但当我试图从这个社会认证中向数据库中添加
added_by
字段时,它给出了

AbstractProvider.php中的InvalidStateException


我做错了什么?如果我
dd(Socialite::driver('facebook')->user()),我可以看到用户的详细信息;在回调函数中。

您应该在回调函数中获取用户信息(在文档中,只有在回调函数中,您才能看到正在进行的调用)。Facebook正在将用户发送回该回调,并提供数据(输入)。
您正在运行的
状态
部分是这些输入的一部分,也保存在会话中。当您调用
Socialite::driver('facebook')->user()
时,它正在查找当前请求中的
状态输入,该状态不存在,因为您重定向了用户,因此您现在收到了不同的请求。

这似乎发生得很好。上面甚至还有一个字母。这些资源有用吗?除了回调函数之外,没有其他方法访问用户详细信息吗?如果您以后需要这些信息,您应该以某种方式将其持久化。该
user
方法需要一个具有特定输入的请求(它期望在回调中被调用),因为在该请求中,社交提供商在对用户进行身份验证后向用户发送数据。