http://qs321.pair.com?node_id=1197098

petru.tr has asked for the wisdom of the Perl Monks concerning the following question:

I'm building a web application using mojolicious. The logout functionality works only while running the app on local machines. When I try to logout on the app running on the server, the session does not expire and I remain logged in.

This started to happen when we changed logout to be done via POST request instead of get.

The way we call logout is as an AJAX call from the frontend:

function do_logout() { $.post( "<%= url_for('on_logout') %>", function() {}); }
Logout route:
$if_login->post('/logout')->name('on_logout')->to('user#on_logout');
Logout controller:
sub on_logout { my $self = shift; $self->session(expires => 1); return $self->redirect_to('home'); }

Line which sets the session to expire is called, but after the redirect, session still contains the username which was logged in.

I've posted the question on stackoverflow if you want to get some rep