[dancer-users] Dancer2 Cookie Expiry Question

Andrew Beverley andy at andybev.com
Thu Aug 20 09:23:04 BST 2015


On Thu, 2015-08-20 at 09:08 +0930, David H wrote:
> I've tried setting my own cookie with Dancer2 and also setting the session
> engine as Cookie.
...
> Although I couldn't find a lot on the Dancer2 method, there is a bit on how
> to do this with Dancer1.
> 
> I have this in my config.yml (thanks Andrew for the help with this):
> template: "template_toolkit"
> session: Cookie
> engines:
>    template:
>      template_toolkit:
>        start_tag: '<%'
>        end_tag:   '%>'
>    session:
>      Cookie:
>        secret_key: mykey
>        default_duration: 60480064
> 
> However when the session is created, as per this image below, the session
> expiry is still 'session' instead of the time I set, which should be
> roughly.

I've not used Dancer2::Session::Cookie, but I know the following works for the
YAML session engine. Therefore, it might be worth trying the generic
cookie_duration parameter instead:

engines:
  session:
    YAML:
      session_dir: "/tmp/dancer-sessions"
      cookie_duration: 3600

> I've had a look at the cookie tests but I still can't figure out how to
> work with cookies properly in Dancer2. The date I set should set the
> session cookie to around 2130. I've also tried lower times with no effect.

To set a cookie:

    cookie MYCOOKIE => 'value', expires => '+2h', domain => $cookie_domain;

(I guess the domain is optional - I've just copied that from existing code)

To get a cookie:

    my $code = cookie 'MYCOOKIE'

Regards,

Andy




More information about the dancer-users mailing list