Настройка файлов cookie в ответе mojolicious

Как установить файл cookie в ответе mojolicious, а затем прочитать его из запроса. Я пробовал разные способы, но ни один из них не устанавливал cookie для объекта ответа.

попробовал эти способы

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

плз, помогите!!

Благодарю.


person PMat    schedule 07.03.2012    source источник


Ответы (1)


Вы можете использовать методы быстрого доступа непосредственно из контроллера:

# 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

person tempire    schedule 07.03.2012
comment
Спасибо за быстрый ответ. Я попробовал сеанс, он работает таким образом. - person PMat; 08.03.2012
comment
Да - первая часть ответа. - person tempire; 08.03.2012
comment
Спасибо .. но ни один из них не работал, пока я не установил путь =/. Я сделал $self-›res-›headers-›set_cookie('foo=bar; Path=/'); и получил его как $self-›cookie('foo'); - person PMat; 09.03.2012
comment
Это странно. Какую версию Mojolicious вы используете? Несмотря на это, вам все равно не нужно устанавливать его напрямую. См. первую ссылку для документации файла cookie контроллера. Путь можно указать во втором параметре hashref. - person tempire; 09.03.2012