[bottle] Loginsystem

Django, Flask, Bottle, WSGI, CGI…
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

response.set_cookie('mycookie', '12345', secure=True, expires=+500)
BlackJack

@Sync32: Dann sehe ich jetzt das Problem gerade so überhaupt nicht, denn Du verschlüsselst den Cookie nicht, musst ihn also auch nicht entschlüsseln. Das `secure` wirkt sich (vielleicht!) auf die Übertragung aus, aber das passiert transparent.

Es kann sein, dass der Browser Dein Cookie nicht akzeptiert, weil das `expires` in einem falschen Format ist. Laut den Beispielen bei Wikipedia ist das ein Datum.
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

denn Du verschlüsselst den Cookie nicht
Ops! Wie verschlüssel ich den denn?

Also wenn ich secure=True benutze, findet er den Cookie bei der Abfrage nicht mehr.
Wenn ich es weglasse (secure=True), dann funktioniert und findet er alles wunderbar
Benutzeravatar
snafu
User
Beiträge: 6851
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hm, Bottles Philosophie, dem User alle Möglichkeiten offen zu lassen, was Middleware angeht, in Ehren, aber vielleicht macht es schon Sinn, zumindest für so triviale Aktionen wie `bottle.request.environ.get('beaker.session')` einen Alias als Funktion bereitzustellen. So wie ja auch Server-Adapter eingebaut sind, die frei wählbar sind, aber eben erst unter Nutzung ihrer Abhängigkeit anwendbar sind, um wirklich sinnvolles Arbeiten zu ermöglichen. Das macht den Code IMHO eine ganze Ecke schöner und ich denke nicht, dass ein Einsatz in Maßen dem schlanken Charakter des Projekts schaden würde.

Wobei, gut, dann müsste man `SessionMiddleware()` mit sinnvollen Voreinstellungen wohl auch wrappen. Man könnte hier vielleicht quasi auf höchster Ebene `bottle.run()` ein Flag für `beaker_session` oder sowas mitgeben. Nur muss man da sicher aufpassen, dass es nicht zu magisch wird. Naja, trotzdem mal als Denkanstoß. ;)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

snafu hat geschrieben:Hm, Bottles Philosophie, dem User alle Möglichkeiten offen zu lassen, was Middleware angeht, in Ehren, aber vielleicht macht es schon Sinn, zumindest für so triviale Aktionen wie `bottle.request.environ.get('beaker.session')` einen Alias als Funktion bereitzustellen. So wie ja auch Server-Adapter eingebaut sind, die frei wählbar sind, aber eben erst unter Nutzung ihrer Abhängigkeit anwendbar sind, um wirklich sinnvolles Arbeiten zu ermöglichen. Das macht den Code IMHO eine ganze Ecke schöner und ich denke nicht, dass ein Einsatz in Maßen dem schlanken Charakter des Projekts schaden würde.

Wobei, gut, dann müsste man `SessionMiddleware()` mit sinnvollen Voreinstellungen wohl auch wrappen. Man könnte hier vielleicht quasi auf höchster Ebene `bottle.run()` ein Flag für `beaker_session` oder sowas mitgeben. Nur muss man da sicher aufpassen, dass es nicht zu magisch wird. Naja, trotzdem mal als Denkanstoß. ;)

Ich dachte man könnte sowas in ein ext Modul auslagern und dann in etwa folgendes machen:

Code: Alles auswählen

from bottle.ext.session import SessionMiddleware, session
...
@get('/foo')
def foo():
    s = bottle.request.session
    #oder
    s = session()

#oder
@get('/foo')
@session
def foo(s):
    ...
run(app_wrappers=(partial(SessionMiddleware, config=session_opts),))
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Antworten