注册并登录facebook


Registration And Login with facebook

在注册页面中,我让用户通过facebook登录我的网站来填写大部分字段,这样我就可以访问他的数据,然后他应该填写一些其他字段,然后注册到我的网站。

在登录页面上,用户可以选择使用用户名和密码登录,也可以使用以前注册的facebook帐户登录。

在登录页面上,我有这样的代码:

if ($user){
    try {
        $loggedin= true;
        $user_profile = $facebook->api('/me','GET');
        $login_url = $facebook->getLoginUrl(
                                  array(
                                    'scope' => 'publish_stream,read_friendlists,email'
                                  )
                            );
        if(email_exists($user_profile['email'])){
            $user = get_user_by('email', $user_profile['email']);
            wp_set_auth_cookie( $user->id );
            wp_redirect( site_url() ); exit;
        }else{
            wp_redirect( site_url('/register/') ); exit;
        }
    } catch (FacebookApiException $e) {
        $login_url = $facebook->getLoginUrl(
                                  array(
                                    'scope' => 'publish_stream,read_friendlists,email'
                                  )
                            ); 
        $loggedin= false;
        error_log($e->getType());
        error_log($e->getMessage());
    }
}else{
    $login_url = $facebook->getLoginUrl(
                                  array(
                                    'scope' => 'publish_stream,read_friendlists,email'
                                  )
                            );
    $loggedin= false;
}

因此,如果用户使用facebook登录,代码会检查他是否是会员,如果是,他会通过身份验证并重定向到主页,如果电子邮件不存在,他应该重定向到注册页面。

问题是,如果用户在注册页面中使用facebook登录,登录页面代码会将他识别为已登录用户,如果他是会员,则会允许他访问,如果他不是会员,则重定向他,但如果用户想使用另一个帐户登录,该怎么办?

我需要做的是终止登录页面中的访问令牌,这样他就可以使用他的facebook帐户重新登录。这可能吗?

阅读本页http://developers.facebook.com/docs/authentication/

将用户从Facebook注销

您可以通过重定向程序将用户从Facebook注销用户https://www.facebook.com/logout.php?next=YOUR_REDIRECT_URL&access_token=USER_access_token

下一个参数中提供的URL必须是具有相同基域的URL作为应用程序设置中定义的应用程序。

您也可以使用通过调用FB.logout()