Php 检查用户是否登录的最有效方法是什么?

Php 检查用户是否登录的最有效方法是什么?,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我非常熟悉Facebook SDK和API,但我仍然发现自己在这方面有很多问题。最重要的是,速度 每次执行“api”调用时,都需要额外的一两秒钟才能返回响应。因此,我想知道检测用户是否通过Facebook登录的最有效、最快速的方法是什么。我目前正在使用: // Get the User ID of the facebook user $facebook_user_id = $this->facebook->getUser(); //

我非常熟悉Facebook SDK和API,但我仍然发现自己在这方面有很多问题。最重要的是,速度

每次执行“api”调用时,都需要额外的一两秒钟才能返回响应。因此,我想知道检测用户是否通过Facebook登录的最有效、最快速的方法是什么。我目前正在使用:

        // Get the User ID of the facebook user
        $facebook_user_id = $this->facebook->getUser();

        // If a facebook user exists, then try to get their information
        if($facebook_user_id){
            try{
                // Get the facebook users details
                $facebook_user_name = $this->facebook->api('/me','GET');
                $this->facebook_logged_in = $facebook_user_id;
                return $this->unique_id = $this->facebook_logged_in;
            }catch(FacebookApiException $e){
                error_log($e);
                return false;
            }
        }else{
            return false;   
        }

这在一定程度上有效,但速度非常慢。我真的想知道用户是否登录,他们的会话是否有效。还有别的办法吗?为什么这么慢?

在大多数facebook的PHP示例中,他们倾向于使用
$uid=$facebook->getUser()参见

然后他们检查$uid是否为0,然后不登录。如果不是0,则您拥有他们的facebook用户id


看起来您正在另外调用
/me
命令,而实际上不需要这样做。另外,要使/me调用更快,请指定
字段=逗号、列表、Of、字段,以便查询更快地运行。但是如上所述,为了获得登录状态,检查$uid中的0。

在大多数facebook的PHP示例中,他们倾向于使用
$uid=$facebook->getUser()参见

然后他们检查$uid是否为0,然后不登录。如果不是0,则您拥有他们的facebook用户id


看起来您正在另外调用
/me
命令,而实际上不需要这样做。另外,要使/me调用更快,请指定
字段=逗号、列表、Of、字段,以便查询更快地运行。但是如上所述,对于仅获取登录状态,请检查$uid中的0。

这是我想要做的,因为它要快得多,但是,此方法不会测试当前会话,因此它可能会返回true,即使它实际上是false。我愚蠢地认为不提供字段会更快,因为查询会更小!平稳!这是我想做的,因为它要快得多,但是,这个方法不测试当前会话,所以它可能会返回为真,即使它实际上是假的。我愚蠢地认为不提供字段会更快,因为查询会更小!平稳!