[cgiapp] Plack::Session and CGI::Application
max.augsburg at gmx.de
max.augsburg at gmx.de
Mon Nov 28 11:22:01 EST 2016
Dear Rhesa,
Thank you very much. This really helped me very much. Nevertheless it
is curious that a manual creation of Plack::Session is necessary. I
will post because of that a report to the Plack::Middlewares::Session
team the next weeks. Perhaps they know why $env->{'psgix.session'} is
not created automatically.
Best wishes and again thank you very very much,
Max
Am Montag, den 28.11.2016, 14:52 +0100 schrieb Rhesa Rozendaal:
> Hi Max,
>
> I have a method in my app that creates a plack session like so:
>
> use Plack::Session;
> sub session {
> my $self = shift;
> $self->{__my_plack_session} ||= Plack::Session->new($self->query-
> > env)
> }
>
>
> I can then use it like this:
>
> $self->session->get('login');
>
> Hope that helps,
>
> Rhesa
>
> On 11/27/2016 11:27 PM, max.augsburg at gmx.dewrote:
> > Hello all,
> >
> > I don't know whether I am completely stumped but I didn't get
> > Plack::Middleware::Session to work.
> >
> > My simple PSGI script is as follow:
> >
> > my $app = sub {
> > my $env = shift;
> > my $webapp = PLogPSGI->new( QUERY => CGI::PSGI->new($env),
> > [bla bla bla]
> > 'env' => $env
> > }
> > );
> > $webapp->run_as_psgi();
> > };
> > builder {
> > enable 'Session';
> > $app;
> > };
> >
> > and my PLogPSGI module looks for example in cgiapp_prerun as
> > follows:
> >
> > sub cgiapp_prerun {
> > my $self = shift;
> > my $current_runmode = shift;
> > # initialize the session
> > my $q =$self->query;
> > my $env = $q->env;
> > my $session = $env->{'psgix.session'};
> > # Check the Login Status and if the user is logged in,
> > start
> > the chosen action
> > my $login = $session->get('login');
> > unless ($login) {
> > $self->prerun_mode('show_login') if
> > ($current_runmode
> > ne 'login_cb');
> > }
> > }
> >
> > I get the following error:
> >
> > Error executing class callback in prerun stage: Can't call method
> > "get" on unblessed reference at /home/maximilian/public_html/cgi-
> > bin/./lib/PLogPSGI.pm line 63. at /home/maximilian/public_html/cgi-
> > bin/extlib/lib/perl5/CGI/Application.pm line 2449
> >
> > If I comment out the cgiapp_prerun lines I can look at the PSGI
> > hash $env. $env->{'psgix.session'} is empty...
> >
> > I saw Ron Savages introduction (
> > http://savage.net.au/Perl/html/session.management.with.plack.html)
> > But unfortunately it doesn't help me.
> >
> > Thanks in advance,
> > Max
> >
> > ##### CGI::Application community mailing list ################
> > ## ##
> > ## To unsubscribe, or change your message delivery options, ##
> > ## visit: http://lists.openlib.org/mailman/listinfo/cgiapp ##
> > ## ##
> > ## Web archive: http://lists.openlib.org/pipermail/cgiapp/ ##
> > ## Wiki: http://cgiapp.erlbaum.net/ ##
> > ## ##
> > ################################################################
> >
> >
>
>
> ##### CGI::Application community mailing list ################ ##
> ## ## To
> unsubscribe, or change your message delivery options, ## ## visit:
> http://lists.openlib.org/mailman/listinfo/cgiapp ## ##
> ## ## Web archive:
> http://lists.openlib.org/pipermail/cgiapp/ ## ## Wiki:
> http://cgiapp.erlbaum.net/ ## ##
> ##
> ################################################################
More information about the cgiapp
mailing list