L'accoppiamento di questi due concetti è un approccio errato?
A partire da ora sto delegando tutta la gestione della sessione e se un utente desideri o meno effettuare il logout nel mio file config.inc. Mentre stavo scrivendo la mia classe Auth ho iniziato a chiedermi se la mia classe Auth dovrebbe prendersi cura della maggior parte della logica nella mia config.inc. Indipendentemente da ciò, sono sicuro che c'è un modo più elegante di gestire questo ...
Ecco cosa ho nel mio config.inc (anche una grande porzione di questo codice è basata su una risposta che ho trovato su SO tranne che non riesco a trovare la fonte ._.):
ini_set('session.name', 'SID');
# session management
session_set_cookie_params(24*60*60); // set SID cookie lifetime
session_start();
if(isset($_SESSION['LOGOUT']) {
session_destroy(); // destroy session data
$_SESSION = array(); // destroy session data sanity check
setcookie('SID', '', time() - 24*60*60); // destroy session cookie data
#header('Location: '.DOCROOT);
} elseif(isset($_SESSION['SID_AUTH'])) { // verify user has authenticated
if (!isset($_SESSION['SID_CREATED'])) {
$_SESSION['SID_CREATED'] = time();
} elseif (time() - $_SESSION['SID_CREATED'] > 6*60*60) {
// session started more than 6 hours ago
session_regenerate_id(); // reset SID value
$_SESSION['SID_CREATED'] = time(); // update creation time
}
if (isset($_SESSION['SID_MODIFIED']) && (time() - $_SESSION['SID_MODIFIED'] > 12*60*60)) {
// last request was more than 12 hours ago
session_destroy(); // destroy session data
$_SESSION = array(); // destroy session data sanity check
setcookie('SID', '', time() - 24*60*60); // destroy session cookie data
}
$_SESSION['SID_MODIFIED'] = time(); // update last activity time stamp
}