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:

Dienstag 30. November 2010, 17:27

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:

Dienstag 30. November 2010, 18:15

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:

Dienstag 30. November 2010, 18:55

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

Dienstag 30. November 2010, 19:05

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:

Dienstag 30. November 2010, 19:42

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:

Mittwoch 1. Dezember 2010, 00:10

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:

Montag 10. Januar 2011, 13:26

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:

Mittwoch 9. Februar 2011, 16:17

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:

Donnerstag 10. Februar 2011, 13:35

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:

Sonntag 13. Februar 2011, 11:09

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: 2523
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 13. Februar 2011, 12:12

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