Это может быть использование файлов cookie. Идея заключается в том, что cookie создается с помощью токена доступа, который вы храните в своей базе данных с меткой времени.
Итак, когда пользователь получает доступ к вашей базе данных, вы создаете случайную строку и вставляете ее в базу данных. С CodeIgniter, это может быть сделано с чем-то вроде
$this->load->helper('string');
$tokenKey = random_string('alnum', 32);
$this->db->insert('tokens', array('userid' => $userid, 'key' => $tokenKey));
tokens
таблицы должен также содержать метку времени для того, когда был создан маркер. Это связано с тем, что, хотя мы добавляем время истечения срока действия в файл cookie, это все равно можно поиграть, поэтому, если бы у нас не было этой двойной проверки, пользователи могли бы получить постоянный доступ к странице.
Теперь пришло время установить cookie. Мы установили время его истечения до + 3600 секунд (через час).
setcookie('tokenKey', $tokenKey, time()+3600, '/');
Всякий раз, когда пользователь пытается получить доступ к защищенной странице, вы можете удалить все маркеры старше часа (чтобы убедиться, что вы не истекли маркеры сохраняются), а затем посмотреть, если маркер существует в таблице , Если да, то меньше часа.
// delete old tokens
$tokenKey = $_COOKIE['tokenKey'];
// select token from database
В качестве альтернативы, вы могли бы иметь cronjob или другое запланированное событие, чтобы очистить просроченные жетоны, чтобы спасти своих клиентов от дополнительного времени это займет, чтобы удалить старые записи. В зависимости от размера вашего сайта это время может быть значительным.
Как вы планируете предотвращать скриншот/печать? – ceejayoz