Problem mit Flask und Session

Django, Flask, Bottle, WSGI, CGI…
Antworten
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

Hallo,
ich benutze Flask mit Debian, Apache und mod_wsgi.
Ich habe einen kleinen Text, der mir anzeigt, ob der Benutzer eingeloggt ist oder nicht (abgefragt mit {% if session['username'] %} wie im Tutorial beschrieben). Lokal funktioniert das alles wunderbar. Sobald die Seite auf dem Server liegt gibts je nach Browser Probleme:

FF funktioniert wunderbar
Chrome funktioniert gar nicht
Opera funktioniert nur teilweise und wenn dann nur mit einem refresh der Seite

Mit 'funktioniert nicht' meine ich, das es wohl kein session['username'] gibt.

Wenn ich statt Apache den eingebauten Server verwende, funktioniert die Session.

Ich weiss leider nicht woran es liegt und wo ich anfangen soll zu suchen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Flask speichert die Daten in einem einzigen Cookie. Vielleicht sind es zu viele Daten und manche Browser weigern sich, den überlangen Cookie anzunehmen?

Kleine Warnung am Rande: Die Flask Implementierung von Sessions speichert die Daten Client-Seitig und macht sie für den Benutzer einseh- und kopierbar. Besonders beim
Thema Benutzer-Authentifizierung wäre ich da vorsichtig.
Bottle: Micro Web Framework + Development Blog
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

Defnull hat geschrieben:Kleine Warnung am Rande: Die Flask Implementierung von Sessions speichert die Daten Client-Seitig und macht sie für den Benutzer einseh- und kopierbar. Besonders beim
Thema Benutzer-Authentifizierung wäre ich da vorsichtig.
Danke für den Hinweis. Dann werde ich das erstmal ändern. Vielleicht behebt es das Problem auch gleich.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Defnull hat geschrieben:Kleine Warnung am Rande: Die Flask Implementierung von Sessions speichert die Daten Client-Seitig und macht sie für den Benutzer einseh- und kopierbar. Besonders beim
Thema Benutzer-Authentifizierung wäre ich da vorsichtig.
Einsehbar sind sie IMO nicht, da das Cookie verschlüsselt wird...
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

ms4py hat geschrieben:
Defnull hat geschrieben:Kleine Warnung am Rande: Die Flask Implementierung von Sessions speichert die Daten Client-Seitig und macht sie für den Benutzer einseh- und kopierbar. Besonders beim
Thema Benutzer-Authentifizierung wäre ich da vorsichtig.
Einsehbar sind sie IMO nicht, da das Cookie verschlüsselt wird...
Signiert, nicht verschlüsselt. Der Inhalt ist nicht geheim, er kann nur nicht geändert werden.
Bottle: Micro Web Framework + Development Blog
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

Ich habe das Problem nun etwas eingegrenzt.
Die Daten werden in das Session Objekt reingeschrieben, allerdings ist nach dem redirect zur Hauptseite das Session Objekt leer. Mit dem eingebautem Webserver von flask besteht das Problem nicht, deswegen denke ich ja das es mit dem Apache zu tun hat.
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

Ich denke es liegt irgendwie am SERVER_NAME.
Muss ich etwas beachten wenn mein Port nicht 80 ist auf dem die Applikation läuft?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Wie lautet dein Sever name, was ist der port und auf was steht SERVER_NAME in der config? :)
TUFKAB – the user formerly known as blackbird
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

mitsuhiko hat geschrieben:Wie lautet dein Sever name, was ist der port und auf was steht SERVER_NAME in der config? :)
Am Server Namen scheint es wohl nicht zu liegen...
donmarten
User
Beiträge: 32
Registriert: Donnerstag 27. August 2009, 08:45
Wohnort: Aalen
Kontaktdaten:

Ich habe mittlerweile heraus gefunden, dass das Session Objekt bei jedem Request ein anderes ist. Ich weiss nur nicht wieso.
Ich lasse mir das Objekt auf der Konsole ausgeben

Code: Alles auswählen

<Session {'_csrf_token': 'f0f60719-64c5-4425-a630-272e91f192c9'}*>
Weiss jemand was der Stern zu bedeuten hat?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Natürlich ist es bei jedem Request ein anderes. Es ist ja unklar wo der Request herkommt, die Cookies werden geparst und davon wird die Session erstellt.

Der Stern zeigt einfach an dass die Session noch nicht gespeichert wurde.
Antworten