Zo werkt het: een sessie
De diagrammen van één klik en één formulier gaan uit van een verzoek dat op zichzelf staat. Een sessie is het rondje dat dat gat dicht.
Browser: De browser stuurt de cookie mee. Bij elk verzoek aan jouw server gaat sessie_id automatisch mee, ongevraagd. · Onthouden met een cookie
Server: FastAPI geeft de cookie door. De parameter met Cookie(default="") vangt hem op, net als Form bij een formulier. · Onthouden met een cookie
Server: De server zoekt de sessie op. Het sessie-id is een sleutel in sessies.db; daar staan de echte gegevens. · Onthouden op de server: sessies
Server: Nu pas weet je wie er is. De naam komt uit jouw database, niet uit de cookie — dus die klopt. · Onthouden op de server: sessies
Server: Het antwoord gaat terug. Na het inloggen zet set_cookie het sessie-id erop: bij elke inlog een nieuw id. · Onthouden op de server: sessies
Browser: De browser bewaart de cookie. En stuurt hem bij het volgende verzoek weer mee — het rondje begint opnieuw.
Stap 3 is het hele verschil met een gewone cookie. De server leest niet wat de browser stuurde, maar zoekt het op in zijn eigen database, en alleen het id reist mee in de cookie. Hier hoort bij elke stap de regel uit je main.py uit Onthouden op de server: sessies:
- De browser doet stap 1 en 6 zelf; daar schrijf je niets voor.
- Stap 2 is de parameter
sessie_id: str = Cookie(default="")van je endpoint. - Bij stap 3 en 4 hoort
sessies.get(sessie_id, {}). Een onbekend id geeft een lege dictionary, en dan is er geen sessie. - In je
POST /inloggenisantwoord.set_cookie(key="sessie_id", value=sessie_id, …)stap 5. In de antwoorden daarna zit geen nieuwe cookie: je server zet hem één keer, en de browser stuurt hem steeds terug.