8

我如何在 mojolicious 响应中设置 cookie,然后从请求中读取它。我尝试了不同的方法,但它们都没有在响应对象上设置 cookie。

尝试了这些方法

$self->res->cookies({name => 'foo', value => 'bar'});
$self->res->headers->set_cookie('foo=bar');
$self->res->headers->cookie('foo=bar');

请帮忙!!

谢谢。

4

1 回答 1

14

您可以直接从控制器使用快捷方法:

# Set
$self->cookie(foo => 'bar');

# Get
$self->cookie('foo');

http://mojolicio.us/perldoc/Mojolicious/Controller#cookie

但是,如果您的意图只是存储一个值并在后续请求中检索它,则无需直接设置 cookie。Mojolicious 会话默认使用签名的 cookie,将处理 cookie 的复杂性,并验证客户端没有更改值。

# Set
$self->session(foo => 'bar');

# Get
$self->session('foo');

http://mojolicio.us/perldoc/Mojolicious/Controller#session

如果会话是您的最佳解决方案,请确保设置您的应用程序机密。另外,请查看: http: //mojocasts.com/e4#Session

于 2012-03-07T21:28:41.317 回答