【发布时间】:2012-01-05 14:05:53
【问题描述】:
我正在尝试使用 Mojolicious 的数据库会话,而不是使用签名 cookie 的内置会话。
在startup 子程序中我有类似的东西:
my $dbh = DBI->connect(
$config->{database}->{dsn},
$config->{database}->{user},
$config->{database}->{password},
);
my $session = MojoX::Session->new(
store => [dbi => {dbh => $dbh}], # use MojoX::Session::Store::Dbi
transport => 'cookie', # this is by default
ip_match => 1
);
(ref($self))->attr( 'session' => sub {
return $session;
} );
我想在控制器中使用像$self->session 或$self->app->session 这样的会话对象。
不幸的是,它不起作用 - 它使用以前的会话(来自不同的浏览器)。
这让我发疯 - 我今天所做的只是让这项工作正常进行 - 我已经阅读了所有可用的文档,还阅读了 MojoX::Session 及其所有相关类的来源,尝试了大约 923847293847239847 种使其工作的方法,但似乎什么也没做。
PS:我在数据库中创建了session 表。
您知道我应该怎么做才能在 Mojolicious 中使用 DB 会话吗?
【问题讨论】:
标签: perl dbi mojolicious