Flask Academy · Les

Geauthenticeerde endpoints testen

Log in binnen tests om beveiligde routes te bereiken.

Les 4 van 413 stappen

Geauthenticeerde endpoints testen is een gratis Flask Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Flask Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Flask Academy bevat in totaal 4 lessen.

De uitdaging van tests voor authenticatie

Beveiligde routes weigeren anonieme bezoekers. Om ze te testen, moet je client eerst inloggen, net zoals een echte gebruiker dat zou doen voordat die beveiligde pagina's opent.

Controleren of de beveiliging werkt

Begin door te bewijzen dat de toegang gesloten is. Vraag de route op terwijl je bent uitgelogd en controleer of je een omleiding of een 401-respons krijgt.

resp = client.get('/dashboard')
assert resp.status_code == 302

Inloggen via de inlogroute

De realistische manier om te authenticeren is door inloggegevens te posten naar je inlog-eindpunt. De client slaat de sessiecookie automatisch op.

client.post('/login', data={'email': 'a@b.com', 'password': 'pw'})

De client bewaart cookies

Een handig detail: de testclient onthoudt cookies tussen aanroepen. Na het inloggen blijven latere verzoeken geauthenticeerd zonder extra werk.

Een beveiligde route openen

Vraag de beveiligde pagina opnieuw op nu je bent ingelogd. Controleer deze keer of je een 200 krijgt en de beveiligde inhoud ziet.

resp = client.get('/dashboard')
assert resp.status_code == 200

Een helper om in te loggen

Steeds opnieuw de inlogaanvraag schrijven wordt onoverzichtelijk. Verpak deze in een kleine helperfunctie, zodat elke authenticatietest overzichtelijk op één regel past.

def login(client):
    return client.post('/login', data={'email': 'a@b.com', 'password': 'pw'})

Een geauthenticeerde fixture

Nog beter is een fixture die een al ingelogde client retourneert. Tests die authenticatie nodig hebben vragen deze gewoon op en slaan de voorbereiding over.

@pytest.fixture
def auth_client(client):
    login(client)
    yield client

De uitlogstroom testen

Authenticatie is pas klaar als uitloggen werkt. Roep /logout aan en controleer daarna opnieuw of de beveiligde route de nu anonieme client weigert.

client.get('/logout')
assert client.get('/dashboard').status_code == 302

Voor snelheid het inloggen omzeilen

Bij Flask-Login-apps kun je het formulier overslaan en de sessie rechtstreeks instellen. Dit is sneller, maar test minder van de echte inlogroute.

with client.session_transaction() as sess:
    sess['_user_id'] = '1'

Token-beveiligde API's testen

Bij JWT-API's is er geen cookie. Stuur de token bij elk verzoek mee in een Authorization-header om toegang te krijgen tot een beveiligd eindpunt.

client.get('/api/me', headers={'Authorization': 'Bearer ' + token})

Beide kanten van de toegang testen

Goede authenticatietests controleren beide uitkomsten: anonieme gebruikers worden geblokkeerd en geauthenticeerde gebruikers krijgen toegang. Test zowel het positieve als het negatieve pad.

Snelle controle

Je moet een dashboard testen waarvoor je moet inloggen. Wat zorgt ervoor dat dit werkt?

Samenvatting: geauthenticeerde tests

Je logt in via de client, gebruikt diens cookiegeheugen en controleert zowel geblokkeerde als toegestane paden. Je authenticatie is nu volledig getest. 🔐

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Geauthenticeerde endpoints testen” gratis?

Ja — de volledige tekst van “Geauthenticeerde endpoints testen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Flask Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Flask Academy bevat in totaal 4 lessen.

Wat leer ik in “Geauthenticeerde endpoints testen”?

Log in binnen tests om beveiligde routes te bereiken. Je oefent met Flask Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Flask Academy te beginnen?

Ervaring vooraf is niet nodig. Flask Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Geauthenticeerde endpoints testen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Flask Academy?

Ja. Elke les over Flask Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De testclient en fixtures
  2. Routes en JSON controleren
  3. Tests isoleren met een testdatabase
  4. Geauthenticeerde endpoints testen
← Terug naar Flask Academy