load->model('user_model'); $rem = json_decode(get_cookie($CI->config->item('sess_cookie_name').'_rm')); return $CI->user_model->verify_remember_me( $rem->u, $rem->r, $rem->t, $rem->ut ); } public static function create(int $user_id, int $role_id, int $isBOUser = 1) { // Get CodeIgniter instance $CI =& get_instance(); $CI->load->model('user_model'); // Generate RemToken $remToken = generateRandomString(20); // Create Rememberme cookie Cookie::create([ 'name' => 'rm', 'value' => json_encode([ "u" => $user_id, "r" => $role_id, "t" => $remToken, "ut" => $isBOUser ]), 'expire' => '172800', //2days 'prefix' => $CI->config->item('sess_cookie_name').'_', // 'domain' => 'localhost' ]); // Save remToken in user account $CI->user_model->update_remember_me( $user_id, $role_id, $remToken ); } public static function forget() { // Get CodeIgniter instance $CI =& get_instance(); $rem = self::get(1); $rem = $rem ?? self::get(0); if ($rem) { // Remove remToken in user account $CI->user_model->update_remember_me( $rem->user_id, $rem->role_id, null ); // Remove cookie Cookie::delete($CI->config->item('sess_cookie_name').'_rm'); } } public static function isRemembered(int $isBOUser = 0): bool { // Get CodeIgniter instance $CI =& get_instance(); if( (is_null(get_cookie($CI->config->item('sess_cookie_name').'_rm')) || empty(get_cookie($CI->config->item('sess_cookie_name').'_rm'))) ) return false; $rem = json_decode(get_cookie($CI->config->item('sess_cookie_name').'_rm')); if ((int) $rem->ut !== $isBOUser) return false; return true; } }