Zum Hauptinhalt springen

Sessions verstehen

Idee

HTTP ist „vergesslich“. Eine Session merkt sich zwischen Requests z. B.:

  • wer eingeloggt ist
  • Flash-Nachrichten

Flask Session

from flask import Flask, session

app = Flask(__name__)
app.secret_key = "NUR-FUER-LOKALES-LERNEN-AENDERN"

@app.get("/set")
def set_name():
session["user"] = "Luna"
return "gesetzt"

@app.get("/who")
def who():
return session.get("user", "gast")

In echt: Secret aus Umgebungsvariable, nicht hardcoded committen.

Rate mal!

Ist die Session dasselbe wie localStorage im Browser?

Auflösung

Nein – Session wird vom Server verwaltet (Cookie mit Signatur/ID).

Probiere es selbst

Experiment 1

session setzen und lesen.

Experiment 2

Browser neu starten – Session-Cookie-Verhalten beobachten.

Experiment 3

session.pop("user", None) zum Logout.

Übungen

Level 1

Session in einem Satz.

Level 2

Warum secret_key?

Level 3

Logout-Route skizzieren.

Level-3-Lösung
@app.post("/logout")
def logout():
session.clear()
return redirect("/")

Mini-Quiz

Mini-QuizWas braucht Flask fuer signierte Sessions?

Sessions sitzen! Als Nächstes: Passwörter sicher.