Php 页面刷新时facebook Api未运行错误

Php 页面刷新时facebook Api未运行错误,php,facebook,api,session,Php,Facebook,Api,Session,我正在使用facebook API表单登录它正在工作,但问题是它在页面刷新时显示错误这里是我的代码,请在我检索用户名和id时给我解决方案,但在刷新(f5)页面时出现错误 <?php session_start(); require_once ('fb/autoload.php'); require_once ('fb/facebook.php'); $fb = new Facebook\Facebook([

我正在使用facebook API表单登录它正在工作,但问题是它在页面刷新时显示错误这里是我的代码,请在我检索用户名和id时给我解决方案,但在刷新(f5)页面时出现错误

        <?php  session_start();
        require_once ('fb/autoload.php'); 
        require_once ('fb/facebook.php');
        $fb = new Facebook\Facebook([
            'app_id' => '',
            'app_secret' => '',
            'default_graph_version' => 'v2.2',
        ]);
        $helper = $fb->getRedirectLoginHelper();
        $accessToken = $helper->getAccessToken(); //retrive accessToken 
        $permissions = ['email', 'public_profile', 'user_friends' ]; 
        $loginUrl = $helper->
        getLoginUrl('http://localhost/facebook/', $permissions);
        if (isset($accessToken)) 
          {
               $_SESSION['facebook_access_token'] = (string) $accessToken;
          }
        if (isset($_SESSION['facebook_access_token']))
          {
             $oAuth2Client = $fb->getOAuth2Client();
             $longLivedAccessToken =$oAuth2Client->
             getLongLivedAccessToken($_SESSION['facebook_access_token']);
             $_SESSION['fb_access_token'] = (string) $longLivedAccessToken;
             $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
             $response =$fb->
             get('/me?locale=en_US&fields=name,email,gender,picture');  
             $userNode = $response->getGraphUser();
             $id=$userNode->getId();
             $name=$userNode->getName();
             echo 'Logged in as ' . $name;
             echo '<a href="out.php">out</a>'; //
        }
        else
        {
             echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
        }
        ?>


致命错误:未捕获异常“Facebook\Exceptions\FacebookSDKException”,消息为“跨站点请求伪造验证失败”。URL和会话中的“state”参数不匹配。您可能只需在成功登录后将用户重定向到其他地方,以便
code
state
参数从URL中消失–然后重新加载不会触发再次将代码交换为令牌的整个过程。“此授权代码已被使用”-这意味着您正试图第二次用
代码
交换访问令牌。请找出第一次发生的时间,然后将用户重定向到其他位置。