Thread Cookies mit PSGI/Plack setzen bzw. auslesen (4 answers)
Opened by Max_Perlbeginner at 2016-11-27 08:15

Max_Perlbeginner
 2016-11-27 08:15
#185669 #185669
User since
2016-04-04
107 Artikel
BenutzerIn
[default_avatar]
Hallo,
Ich versuche mich gerade ein wenig mit PSGI/Plack, komme aber gar nicht mit den Cookies zu Recht. Scheinbar werden sie gesetzt, aber ich kann sie einfach nicht auslesen. Oder vlt. werden sie auch einfach nicht gesetzt..

Anbei mal ein kleines Testprogramm:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# /usr/bin/perl -wT
use lib ('.','./extlib2/lib/perl5');
use Plack::Request;
use Data::Dumper;

my $handler = sub {
my $env = shift;
my $req = Plack::Request->new($env);
my $cookie = $req->cookies;
my $res = Plack::Request->new_response();
if ($cookie) {
$res->status(200);
$res->headers;
$res->body(["COOKIE", Dumper $cookie, "ENV", Dumper $env]);
$res->finalize
}
else {
$res->cookies->{'session_id'}='1234';
$res->redirect("/");
$res->finalize;
}
};


Ich hätte mir erwartet, dass Dumper $cookie mir irgendwie die session_id 1234 anzeigt, stattdessen scheint die Variable leer zu sein (Cookies sind im Browser natürlich aktiviert; merkwürdig ist halt, dass im Programm $cookie als wahr interpretiert wird, da ich ja sonst eine Endlos-Weiterleitung hätte...). Auch bei Dumper $env hätte ich mich irgendwo ein HTTP_COOKIES Feld o.ä. erwartet. Kann mich irgendjemand aufklären, was hier schief läuft? Ich steh grad echt auf dem Schlauch...

Im "echten" Programm, wofür ich das Cookie setzten benötige, geht es um folgende Zeilen (statt Plack::Request benutze ich CGI::PSGI)
Code: (dl )
1
2
3
my $cookie = $q->cookie(-name => 'session_id', -value => $self->generate_id() );
my ($status_code, $headers_aref) = $q->psgi_redirect(-cookie => $cookie, -uri => $q->self_url());
return [$status_code, [$headers_aref], [] ];


Im Voraus vielen lieben Dank,
Max

PS.: Anbei noch die Ausgabe von plackup. Komisch ist, dass gar keine Weiterleitung angezeigt wird:
Quote
127.0.0.1 - - [27/Nov/2016:08:06:25 +0100] "GET / HTTP/1.1" 200 1690 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
127.0.0.1 - - [27/Nov/2016:08:06:26 +0100] "GET /favicon.ico HTTP/1.1" 200 1593 "http://localhost:5000/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"

Last edited: 2016-11-27 08:17:55 +0100 (CET)

View full thread Cookies mit PSGI/Plack setzen bzw. auslesen