Thread Plack::Middleware::Session und CGI::Application (3 answers)
Opened by Max_Perlbeginner at 2016-11-27 22:51

Max_Perlbeginner
 2016-11-27 22:51
#185675 #185675
User since
2016-04-04
107 Artikel
BenutzerIn
[default_avatar]
Hallo, liebe Perlgemeinde,
Wie bereits in einem anderen Thread gesagt, versuche ich derzeit eine Session (zur Authentifizierung) mittels Plack::Middleware::Session einzurichten. Nur bleibt komischerweise $env->{psgix.session} bei mir immer leer.

Das ist mein PSGI Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $app = sub {
my $env = shift;
my $webapp = MyApp->new( QUERY => CGI::PSGI->new($env),
[bla bla bla]
'env' => $env
}
);
$webapp->run_as_psgi();
};
builder {
enable 'Session';
$app;
};


Und hier die inkrimierten Zeilen aus meiner CGI::Application Subclass (in cgiapp_prerun)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
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');
}
}


Die Errormeldung ist:
Quote
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


Wenn ich die Zeilen in cgiapp_prerun auskommentiere, kann ich mir den Inhalt von $env anzeigen lassen. psgix.session ist leer.
Last edited: 2016-11-28 16:57:23 +0100 (CET)

View full thread Plack::Middleware::Session und CGI::Application