【发布时间】:2017-08-09 12:27:46
【问题描述】:
我正在使用 mojolicious 构建一个 Web 应用程序。注销功能仅在本地计算机上运行应用程序时有效。当我尝试在服务器上运行的应用程序上注销时,会话不会过期并且我保持登录状态。
当我们将注销更改为通过 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');
}
调用设置会话过期的行,但重定向后,会话仍然包含登录的用户名。
【问题讨论】:
标签: session mojolicious perl