I found the source of the problem, and it still leaves me hanging.


For some hideous reason, if I redirect after making the request for the users json data, the session is undef in the main application. However, if I don't redirect. Then goto the homepage from the browser, it accesses my session! :S


my $jresp  = $browser->get("https://api.github.com/user?access_token=$acc");
my $json = decode_json($jresp->decoded_content);
$dsl->session(github_user =>  $json); #also tested by just setting a string instead of json!
$dsl->session(github_access_token => $acc);
return "done";   #This works fine! 
#but if I # return $dsl->redirect("/"); #it doesn't work !


And worst of all, if I take your code and do this:

  my $controller = sub { $dsl->session(user =>  "Yippikiayeeeh");
                      return $dsl->redirect("/");};

it works! but for me it doesn't me. The session goes undef.

I tried it with a YAML backend and the default (simple session)




On Fri, Oct 4, 2013 at 4:14 AM, Cymon <cymon.ML@gmail.com> wrote:
I wrote a code similar to yours and it works for me.

Here the routes:

package Test;
use Dancer2;
use Dancer2::Plugin::Dummy;

get '/' => sub {

      if (not defined(session->read('user'))) {
        return "No user"
      }
      else
      {
          return "User is here"
      }
};

1;

Here the dummy plugin:

package Dancer2::Plugin::Dummy;
use Dancer2::Plugin;

on_plugin_import {
     my $dsl = shift;
     my $controller = sub { $dsl->session(user =>  "Yippikiayeeeh");
                      return "You have a user now!"};
$dsl->any(['get'] => '/populate/session', $controller); };

register_plugin for_versions => [ 2 ];


If I go to populate/session and the on the home I can see user
populated.

What kind of session manager are you using? Are you sure it's working
well?

Cymon
http://perlishscrewdriver.blogspot.it/





Il giorno Fri, 4 Oct 2013 00:36:23 +0530
"Gideon D'souza" <gidisrael@gmail.com> ha scritto:

> Tried it, It still goes into a redirect loop because the session is
> always undef the sub for "/".
>
> :( I'd really appreciate anyone just peeing into this!
>
>
> On Tue, Oct 1, 2013 at 4:48 AM, Slavik Goltser <slavikg@gmail.com>
> wrote:
>
> > Doesn't that get ignored in Dancer2?
> >
> >
> > On Mon, Sep 30, 2013 at 6:51 PM, Cymon <cymon.ML@gmail.com> wrote:
> >
> >> Hi,
> >> i tried your code.
> >>
> >> Did you remember to add:
> >>
> >> register_plugin for_versions => [ 2 ];
> >>
> >> at the end of the plugin?
> >> It will not work without this.
> >>
> >> Cymon
> >> http://perlishscrewdriver.blogspot.it/
> >>
> >> Il giorno Sun, 29 Sep 2013 22:55:05 +0530
> >> "Gideon D'souza" <gidisrael@gmail.com> ha scritto:
> >>
> >> > Thank you very much for your time.
> >> >
> >> > I tried it. No luck still.
> >> >
> >> > If I may bother you so:
> >> >
> >> > on_plugin_import {
> >> >      my $dsl = shift;
> >> >      my $controller = sub { ...; ...; $dsl->session(user =>
> >> > $some_json);} $dsl->any(['get'] => '/your/path', $controller);
> >> > }
> >> >
> >> > in app that uses this plugin:
> >> >
> >> > get '/' => sub {
> >> >
> >> >       if (not defined(session->read('user'))) {
> >> > ######
> >> > #session->Read('user') is always undef!!!
> >> > ######
> >> >           return redirect auth_github_authenticate_url;
> >> >       }
> >> > };
> >> >
> >> > Any clues here?
> >> >
> >> >
> >> > On Sun, Sep 29, 2013 at 6:49 PM, Cymon <cymon.ML@gmail.com>
> >> > wrote:
> >> >
> >> > >
> >> > > >
> >> > > > Is there a way to add routes inside a plugin, on init or
> >> > > > something like that? Or perhaps it's something else I've
> >> > > > missed?
> >> > > >
> >> > > > Any reply or pointers appreciated.
> >> > >
> >> > > Hi,
> >> > > I have no time to try your code now and help you with your
> >> > > issue, but I can answer this.
> >> > >
> >> > > To add routes inside a plugin just define the on_plugin_import
> >> > > sub in your plugin package as this.
> >> > >
> >> > > on_plugin_import {
> >> > >      my $dsl = shift;
> >> > >      my $controller = sub { ...do things ... }
> >> > >      $dsl->any(['get'] => '/your/path', $controller);
> >> > > }
> >> > >
> >> > >
> >> > > --
> >> > > Cymon
> >> > > http://perlishscrewdriver.blogspot.it/
> >> > > _______________________________________________
> >> > > dancer-users mailing list
> >> > > dancer-users@dancer.pm
> >> > > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
> >> > >
> >>
> >>
> >> --
> >> Cymon
> >> Coniglio domina,
> >> http://www.therabbit.it
> >> _______________________________________________
> >> dancer-users mailing list
> >> dancer-users@dancer.pm
> >> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
> >>
> >
> >
> > _______________________________________________
> > dancer-users mailing list
> > dancer-users@dancer.pm
> > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
> >
> >


--
Cymon
Coniglio domina,
http://www.therabbit.it
_______________________________________________
dancer-users mailing list
dancer-users@dancer.pm
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users