$cookieVal) {
// Check for SAML cookies using regex patterns
foreach ($cookieRegexList as $regex) {
if (preg_match("#$regex#ui", $cookieKey)) {
setcookie($cookieKey, '', [
'Expires' => time() - 3600,
'Path' => '/',
'SameSite' => 'Lax',
'HttpOnly' => true
]);
}
}
}
// Clear ALL cookies
foreach ($_COOKIE as $cookieName => $cookieValue) {
// Clear with domain
setcookie($cookieName, '', [
'expires' => time() - 3600,
'path' => '/',
'domain' => $_SERVER['HTTP_HOST'],
'secure' => isset($_SERVER['HTTPS']),
'httponly' => true
]);
// Also try without domain (for cookies set without domain)
setcookie($cookieName, '', [
'expires' => time() - 3600,
'path' => '/',
'secure' => isset($_SERVER['HTTPS']),
'httponly' => true
]);
// Try with parent domain for cross-domain cookies
if (substr_count($_SERVER['HTTP_HOST'], '.') > 1) {
$parentDomain = substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.'));
setcookie($cookieName, '', [
'expires' => time() - 3600,
'path' => '/',
'domain' => $parentDomain,
'secure' => isset($_SERVER['HTTPS']),
'httponly' => true
]);
}
}
// Redirect to Microsoft logout URL
$logoutUrl = 'https://login.microsoftonline.com/18843e6e-1846-456c-a05c-500f0aee12f6/oauth2/logout';
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Location: ' . $logoutUrl);
exit;
}
try {
include_once(((strpos($t4_config['phar'], '.phar') !== false) ? 'phar://' : '').$_SERVER['DOCUMENT_ROOT'].$t4_config['phar'].'/vendor/autoload.php');
if (!class_exists('\AccessControl\Core\Config')) {
throw new \Exception('AccessControl Library is not loaded correctly');
}
if (!empty($t4_config['config'])) {
AccessControl\Core\Config::setJSON($_SERVER['DOCUMENT_ROOT'].$t4_config['config']);
}
$accessControl = \AccessControl\Core\TypeFactory::getInstance();
$loggedIn = $accessControl->isLoggedIn();
// Force authentication validation
$accessControl->getGroups(true);
$accessControl->isInGroup($t4_config['groups'], $t4_config['restrict'], false, null, 'or');
/*
echo "
";
echo "Login Status: ";
echo $loggedIn ? "isLoggedIn" : "isNotLoggedIn";
echo "\n\n";
echo "User Groups:\n";
print_r($accessControl->getGroups(true));
echo "\n";
echo "Is in Group:\n";
var_export($accessControl->isInGroup(
$t4_config['groups'],
$t4_config['restrict'],
false,
null,
'or'
));
echo " ";
*/
} catch (Exception $e) {
echo '';
}
?>
Profiles | University of Chester
menu
Primary Navigation Menu
Study
add
Student Life
add
International
add
Research
add
About
add
Logout
search
Switch search type
Site search
sync_alt
Course search
"My favourite module was User Experience, and it has been throughout my university experience. To explore what makes a great piece of software."
BSc Computer Science graduate, Peter, tells us about his favourite part of the course, and gives some advice to new students studying at the University of Chester.
play_arrow
Graduate Story - Peter Stringer
Graduate Story - Peter Stringer
close