Выход из системы не работает в CI 3

Я пытаюсь выйти из системы вошедших в систему пользователей.
Но это не работает, после выхода я получаю данные сеанса также.

Ниже мой код. Пожалуйста, посмотрите.

public function logout() {

if ($this->session->userdata('login') == "true") {
$current_user_data = $this->session->userdata('current_user_data');

$type = $current_user_data['type'];
$user_id = $current_user_data['user_id'];
$token = $current_user_data['token'];
$logout = $this->school->logout($type, $user_id, $token);
if (!empty($logout)) {
//echo $logout->responseCode;
if ($logout->responseCode == 200 || $logout->responseCode == 419) {
$this->session->sess_destroy();
$this->clear_cache();//clear the cache after logout //
redirect('login');
} else {
//$error['code']=json_encode(array('responseCode' => '500', 'response' => array('message' => 'error', 'statusReason' => 'internal_server_error')));
$url = "error/error_type/500";
redirect($url);
}
} else {
//echo "invalid token";
$url = "error/error_type/401";
redirect($url);
}
} else {
redirect('login');
}
}

Это также идет к условиям, но сессия не разрушает.

Здесь что-то не так?

Спасибо

0

Решение

sess_destroy() уничтожит все сессии, даже флеш. Почему бы не использовать простую функцию. Я попробовал это, и это сработало в моем случае. Я создал сеанс с именем userdata, который будет принимать учетные данные пользователя во время входа в систему. Это моя функция выхода из системы.

/**
* to logout the current session
*/

public function logout() {
$this->session->unset_userdata('user_login');
$this->load->view('index.php');
}

Если вы хотите уничтожить данные сеанса, это тоже должно работать нормально,
передайте это дальше https://www.codeigniter.com/user_guide/libraries/sessions.html

0

Другие решения

Попробуйте этот метод для выхода

<?php
class Logout extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper(array('url','html'));
$this->load->library('session');
$this->load->database();
$this->load->model('users_model');

}

function index()
{
$user_data = $this->user_model->get_user_by_id($this->session->userdata('id'));
foreach ($user_data as $key => $value) {
if ($key != 'session_id' && $key != 'ip_address' && $key != 'user_agent' && $key != 'last_activity') {
$this->session->unset_userdata($key);
}
}
$this->session->sess_destroy();

redirect('Welcome', 'refresh');
}
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector