Уничтожение сеанса с помощью Codeigniter и библиотеки Tank_Auth

Я использую Codeigniter для приложения и добавил Tank_Auth в качестве системы аутентификации.

Локально (XAMPP) все работает отлично (вход в систему, выход из системы). На сервере, хотя я заметил ошибку, когда я вхожу, я прохожу, когда я выхожу, я перенаправлен на страницу входа в систему, когда я делаю то же самое сразу, я вхожу, я вхожу, я выхожу.. Я все еще, выход больше не работает.

Мне интересно, если это проблема cookie/ сессии.

моя функция выхода из системы такая:

function logout()
    {
        $this->db->cache_delete_all();
        $this->tank_auth->logout();
        $this->session->sess_create();

         //$this->_show_message($this->lang->line('auth_message_logged_out'));
                redirect('/auth/login/','refresh');

        //$this->_show_message($this->lang->line('auth_message_logged_out'));

    }

единственная разница между версией сервера и локальной версией - это.htaccess, мне интересно, имеет ли это какое-либо отношение к этому

Мой доступ

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType text/css "access 1 week"
ExpiresByType application/pdf "access 1 week"
ExpiresByType text/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 week"
ExpiresByType image/x-icon "access 1 week"
ExpiresDefault "access plus 1 year"
</IfModule>

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

DirectoryIndex index.php
RewriteEngine on
RewriteBase /app/
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA] 
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/javascript

Любая идея?

Спасибо

РЕДАКТИРОВАТЬ: проблема решена

Это вызывало проблему выхода из сеанса ExpiresDefault "access plus 1 year"После удаления этой строки аутентификация работала как шарм

1 ответ

Решение

Попробуйте что-то вроде этого:

function logout()
{
    $this->delete_autologin();
    $this->tank_auth->logout();
    // See http://codeigniter.com/forums/viewreply/662369/ as the reason for the next line
    $this->ci->session->set_userdata(array('user_id' => '', 'username' => '', 'status' => ''));


        $this->ci->session->sess_destroy();
}

NB. Если у вашего хостинг-провайдера mod_gzip модуль отключен, затем удалите mod_gzip часть от .htaccess

Другие вопросы по тегам