Hi

Calling session->destroy fails with the following.

Can't locate object method "destroy" via package "Dancer2::Core::Session" at /srv/web/app/lib/app.pm line 36.

config.yml:

session: Simple

/srv/web/app/lib/app.pm:

package app;
use Dancer2 ':syntax';
use Dancer2::Plugin::Ajax;
use Authen::Simple::Passwd;

...
..

get '/logout' => sub {
  session->destroy;
  redirect '/login';
}

I even tried:

my $id = session->id;
session->delete($id);

but, even though it doesn't throw an error, it doesn't delete the session and other routes are served.

So far, at the top of app.pm, I have:

hook before => sub {
if (request->path_info !~ m{^/login}) {
if (session('user') && session('time')) {
my $time_now = time;
if ($time_now - session('time') < config->{'session_expire'}) {
session 'time' => time;
}
else {
return redirect '/logout?msg=session_expired&path=' . request->path_info;
}
}
else {
return redirect '/login';
}
}
};


I'm stumped, as, apart from the above snippet, and the Dancer2 use lines, the app works under Dancer1.

Any pointers would be appreciated.

Thanks
Dale