Logout works properly now.
This commit is contained in:
parent
57860b4d8a
commit
35b3934233
|
@ -254,6 +254,8 @@ class FBConnectloginAction extends Action
|
||||||
|
|
||||||
function tryLogin()
|
function tryLogin()
|
||||||
{
|
{
|
||||||
|
common_debug("Trying Facebook Login...");
|
||||||
|
|
||||||
$flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE);
|
$flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE);
|
||||||
|
|
||||||
if ($flink) {
|
if ($flink) {
|
||||||
|
@ -261,7 +263,7 @@ class FBConnectloginAction extends Action
|
||||||
|
|
||||||
if ($user) {
|
if ($user) {
|
||||||
|
|
||||||
common_debug("Logged in Facebook user $flink->foreign_id as user $user->id");
|
common_debug("Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)");
|
||||||
|
|
||||||
common_set_user($user);
|
common_set_user($user);
|
||||||
common_real_login(true);
|
common_real_login(true);
|
||||||
|
@ -284,6 +286,7 @@ class FBConnectloginAction extends Action
|
||||||
array('nickname' =>
|
array('nickname' =>
|
||||||
$nickname));
|
$nickname));
|
||||||
}
|
}
|
||||||
|
|
||||||
common_redirect($url, 303);
|
common_redirect($url, 303);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,10 +305,6 @@ class FBConnectloginAction extends Action
|
||||||
|
|
||||||
function bestNewNickname()
|
function bestNewNickname()
|
||||||
{
|
{
|
||||||
|
|
||||||
common_debug("bestNewNickname()");
|
|
||||||
common_debug(print_r($this->fb_fields, true));
|
|
||||||
|
|
||||||
if (!empty($this->fb_fields['name'])) {
|
if (!empty($this->fb_fields['name'])) {
|
||||||
$nickname = $this->nicknamize($this->fb_fields['name']);
|
$nickname = $this->nicknamize($this->fb_fields['name']);
|
||||||
if ($this->isNewNickname($nickname)) {
|
if ($this->isNewNickname($nickname)) {
|
||||||
|
|
|
@ -67,10 +67,8 @@ class FBConnectPlugin extends Plugin
|
||||||
|
|
||||||
$name = get_class($action);
|
$name = get_class($action);
|
||||||
|
|
||||||
common_debug("action: $name");
|
|
||||||
|
|
||||||
// Avoid a redirect loop
|
// Avoid a redirect loop
|
||||||
if ($name != 'FBConnectloginAction') {
|
if (!in_array($name, array('FBConnectloginAction', 'ClientErrorAction'))) {
|
||||||
|
|
||||||
$this->checkFacebookUser($action);
|
$this->checkFacebookUser($action);
|
||||||
|
|
||||||
|
@ -122,7 +120,14 @@ class FBConnectPlugin extends Plugin
|
||||||
$apikey = common_config('facebook', 'apikey');
|
$apikey = common_config('facebook', 'apikey');
|
||||||
$plugin_path = common_path('plugins/FBConnect');
|
$plugin_path = common_path('plugins/FBConnect');
|
||||||
|
|
||||||
$login_url = common_get_returnto() || common_local_url('public');
|
$url = common_get_returnto();
|
||||||
|
|
||||||
|
if ($url) {
|
||||||
|
// We don't have to return to it again
|
||||||
|
common_set_returnto(null);
|
||||||
|
} else {
|
||||||
|
$url = common_local_url('public');
|
||||||
|
}
|
||||||
|
|
||||||
$html = sprintf('<script type="text/javascript">FB.init("%s", "%s/xd_receiver.htm");
|
$html = sprintf('<script type="text/javascript">FB.init("%s", "%s/xd_receiver.htm");
|
||||||
|
|
||||||
|
@ -130,7 +135,7 @@ class FBConnectPlugin extends Plugin
|
||||||
window.location = "%s";
|
window.location = "%s";
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>', $apikey, $plugin_path, $login_url);
|
</script>', $apikey, $plugin_path, $url);
|
||||||
|
|
||||||
|
|
||||||
$action->raw($html);
|
$action->raw($html);
|
||||||
|
@ -203,11 +208,16 @@ class FBConnectPlugin extends Plugin
|
||||||
|
|
||||||
function checkFacebookUser() {
|
function checkFacebookUser() {
|
||||||
|
|
||||||
|
$user = common_current_user();
|
||||||
|
|
||||||
|
if ($user) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$facebook = getFacebook();
|
$facebook = getFacebook();
|
||||||
$fbuid = $facebook->get_loggedin_user();
|
$fbuid = $facebook->get_loggedin_user();
|
||||||
$user = common_current_user();
|
|
||||||
|
|
||||||
// If you're a Facebook user and you're logged in do nothing
|
// If you're a Facebook user and you're logged in do nothing
|
||||||
|
|
||||||
|
@ -244,35 +254,6 @@ class FBConnectPlugin extends Plugin
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStartLogout($action)
|
|
||||||
{
|
|
||||||
common_debug("onEndLogout()");
|
|
||||||
|
|
||||||
common_set_user(null);
|
|
||||||
common_real_login(false); // not logged in
|
|
||||||
common_forgetme(); // don't log back in!
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
$facebook = getFacebook();
|
|
||||||
$fbuid = $facebook->get_loggedin_user();
|
|
||||||
|
|
||||||
// XXX: ARGGGH this doesn't work right!
|
|
||||||
|
|
||||||
if ($fbuid) {
|
|
||||||
$facebook->expire_session();
|
|
||||||
$facebook->logout(common_local_url('public'));
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception $e) {
|
|
||||||
common_debug('Problem expiring FB session');
|
|
||||||
}
|
|
||||||
|
|
||||||
common_debug("logged out.");
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user