<div dir="ltr"><pre>Hi<br><br>Calling session-&gt;destroy fails with the following.<br></pre><pre><br>Can&#39;t locate object method &quot;destroy&quot; via package &quot;Dancer2::Core::Session&quot; at /srv/web/app/lib/<a href="http://app.pm">app.pm</a> line 36.<br>
<br>config.yml:<br><br>session: Simple<br><br></pre><pre>/srv/web/app/lib/<a href="http://app.pm">app.pm</a>:<br><br></pre><pre>package app;<br>use Dancer2 &#39;:syntax&#39;;<br>use Dancer2::Plugin::Ajax;<br>use Authen::Simple::Passwd;<br>
<br>...<br>..<br><br></pre><pre>get &#39;/logout&#39; =&gt; sub {<br></pre><pre>  session-&gt;destroy;<br></pre><pre>  redirect &#39;/login&#39;;<br></pre><pre>}<br><br></pre><pre>I even tried:<br><br></pre><pre>my $id = session-&gt;id;<br>
</pre><pre>session-&gt;delete($id);<br><br></pre><pre>but, even though it doesn&#39;t throw an error, it doesn&#39;t delete the session and other routes are served.<br><br></pre><pre>So far, at the top of <a href="http://app.pm">app.pm</a>, I have:<br>
<br>hook before =&gt; sub {<br>  if (request-&gt;path_info !~ m{^/login}) {<br>    if (session(&#39;user&#39;) &amp;&amp; session(&#39;time&#39;)) {<br>      my $time_now = time;<br>      if ($time_now - session(&#39;time&#39;) &lt; config-&gt;{&#39;session_expire&#39;}) {<br>
        session &#39;time&#39; =&gt; time;<br>      }<br>      else {<br>        return redirect &#39;/logout?msg=session_expired&amp;path=&#39; . request-&gt;path_info;<br>      }<br>    }<br>    else {<br>      return redirect &#39;/login&#39;;<br>
    }<br>  }<br>};<br><br><br></pre><pre>I&#39;m stumped, as, apart from the above snippet, and the Dancer2 use lines, the app works under Dancer1.<br><br></pre><pre>Any pointers would be appreciated.<br><br></pre><pre>Thanks<br>
Dale<br></pre></div>