Уничтожение сеанса с помощью 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