<?php
function isSessionTimeOut(Int $minutes=5): Bool{
$timeout = $minutes * 60;
$fingerprint = hash_hmac('sha256', $_SERVER['HTTP_USER_AGENT'], hash('sha256', $_SERVER['REMOTE_ADDR'], true));
if(session_id()==''){return true;}
if(!isset($_SESSION['last_active']) ){
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;
return false;
}
if ( (isset($_SESSION['last_active']) && (time() > ($_SESSION['last_active']+$timeout)))
|| (isset($_SESSION['fingerprint']) && $_SESSION['fingerprint']!=$fingerprint)) {
return true;
}else{
session_regenerate_id();
$_SESSION['last_active'] = time();
$_SESSION['fingerprint'] = $fingerprint;
return false;
}
}
/*
Author : Biodun Bamigboye
This function recieves an arguments of the no of minutes you want to keep session alive
The default is 5 Minutes
returns false if session is still active
returns true if session has timed out or
There is change in user signature
*/
|