[bottle] Loginsystem
@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.
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.
Ops! Wie verschlüssel ich den denn?denn Du verschlüsselst den Cookie nicht
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
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ß.
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ß.

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]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]