Я создаю веб-приложение, используя mojolicious. Функция выхода из системы работает только при запуске приложения на локальных компьютерах. Когда я пытаюсь выйти из приложения, работающего на сервере, срок действия сеанса не истекает, и я остаюсь в системе.
Это начало происходить, когда мы изменили выход из системы, чтобы он выполнялся через запрос POST вместо get.
Выход из системы мы вызываем как вызов AJAX из внешнего интерфейса:
function do_logout() {
$.post( "<%= url_for('on_logout') %>", function() {});
}
Маршрут выхода:
$if_login->post('/logout')->name('on_logout')->to('user#on_logout');
Контроллер выхода:
sub on_logout {
my $self = shift;
$self->session(expires => 1);
return $self->redirect_to('home');
}
Вызывается строка, которая устанавливает срок действия сеанса, но после перенаправления сеанс по-прежнему содержит имя пользователя, под которым был выполнен вход.