if (isset($_REQUEST['logout'])) {
unset($_SESSION);
session_destroy();
- header('Location: ' . Tools::fullUrl('/'));
+ header('Location: ' . Tools::fullUrl());
exit();
}
if (!count($_GET) && !count($_POST)) {
- render('login');
+ render(
+ 'login',
+ array(
+ 'openid' => isset($_COOKIE['lastopenid'])
+ ? $_COOKIE['lastopenid'] : 'http://'
+ )
+ );
exit();
}
$openid_url = null;
}
-$realm = Tools::fullUrl('/');
-$returnTo = Tools::fullUrl('/login');
+$realm = Tools::fullUrl();
+$returnTo = Tools::fullUrl('login');
try {
$o = new \OpenID_RelyingParty($returnTo, $realm, $openid_url);
$_SESSION['disable_associations'] = true;
}
-$log = new \OpenID_Observer_Log;
-\OpenID::attach($log);
-
if (isset($_POST['openid_url'])) {
$_SESSION['openid_url'] = $openid_url;
$status = "<tr><td>Status:</td><td><font color='green'>SUCCESS!";
$status .= " ({$result->getAssertionMethod()})</font></td></tr>";
} else {
+ throw new Exception('Error logging in');
$status = "<tr><td>Status:</td><td><font color='red'>FAIL!";
$status .= " ({$result->getAssertionMethod()})</font></td></tr>";
}
} catch (OpenID_Exception $e) {
+ throw new Exception('Error logging in');
$status = "<tr><td>Status:</td><td><font color='red'>EXCEPTION!";
$status .= " ({$e->getMessage()} : {$e->getCode()})</font></td></tr>";
}
$_SESSION['name'] = isset($name) ? $name : $_SERVER['REMOTE_ADDR'];
$_SESSION['identity'] = $openid['openid.identity'];
+setcookie('lastopenid', $_SESSION['identity'], time() + 84600 * 60, '/login');
+
+$url = '';
if (isset($_SESSION['REQUEST_URI'])) {
- $redirect = Tools::fullUrl($_SESSION['REQUEST_URI']);
-} else {
- $redirect = Tools::fullUrl('/');
+ $url = substr($_SESSION['REQUEST_URI'], 1);
}
+$redirect = Tools::fullUrl($url);
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
exit;
?>