From 480ca70dc8de827211c01a3ac1d75d148a21fbd9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 19 Jun 2008 14:32:38 -0400 Subject: [PATCH] try to clear openid url cookie better darcs-hash:20080619183238-84dde-dbe912a40894ec7414e6d5ea0bc40ec527385436.gz --- actions/logout.php | 2 +- lib/openid.php | 29 +++++++++++++++++++++-------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/actions/logout.php b/actions/logout.php index 9cdda52d84..c4d0bd4e7a 100644 --- a/actions/logout.php +++ b/actions/logout.php @@ -27,8 +27,8 @@ class LogoutAction extends Action { if (!common_logged_in()) { common_user_error(_t('Not logged in.')); } else { - common_set_user(NULL); oid_clear_last(); + common_set_user(NULL); common_redirect(common_local_url('public')); } } diff --git a/lib/openid.php b/lib/openid.php index 8cf614bc26..b066c654db 100644 --- a/lib/openid.php +++ b/lib/openid.php @@ -49,21 +49,34 @@ function oid_consumer() { } function oid_clear_last() { - if (oid_get_last()) { - oid_set_last(''); - } + oid_set_last(''); } function oid_set_last($openid_url) { - global $config; - setcookie(OPENID_COOKIE_KEY, $openid_url, + + $path = common_config('site', 'path'); + $server = common_config('site', 'server'); + + if ($path && ($path != '/')) { + $cookiepath = '/' . $path . '/'; + } else { + $cookiepath = '/'; + } + + setcookie(OPENID_COOKIE_KEY, + $openid_url, time() + OPENID_COOKIE_EXPIRY, - '/' . $config['site']['path'] . '/', - $config['site']['server']); + $cookiepath, + $server); } function oid_get_last() { - return $_COOKIE[OPENID_COOKIE_KEY]; + $openid_url = $_COOKIE[OPENID_COOKIE_KEY]; + if ($openid_url && strlen($openid_url) > 0) { + return $openid_url; + } else { + return NULL; + } } function oid_link_user($id, $canonical, $display) {