在注册页面中,我给用户提供填写大部分字段的选项,让他通过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帐户重新登录。这可能吗?
答案 0 :(得分:3)
阅读本页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 作为应用程序设置中定义的应用程序。
您还可以使用以下方式在客户端将用户从Facebook注销 Javascript SDK通过调用
FB.logout()
。