Testa autentiserade endpoints
Logga in i testerna för att nå skyddade routes.
Testa autentiserade endpoints är en gratis lektion i Flask Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Flask Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Flask Academy innehåller totalt 4 lektioner.
Utmaningen med autentiseringstester
Skyddade routes avvisar anonyma besökare. För att testa dem måste klienten först log in, precis som en riktig användare innan hen når skyddade sidor.
Bekräfta att skyddet fungerar
Börja med att visa att porten är stängd. Anropa routen utan att vara inloggad och kontrollera att du får en redirect eller ett 401-svar.
resp = client.get('/dashboard')
assert resp.status_code == 302Logga in via login-routen
Det realistiska sättet att autentisera är att post credentials till din login-endpoint. Klienten sparar sessionscookien automatiskt.
client.post('/login', data={'email': 'a@b.com', 'password': 'pw'})Klienten behåller cookies
En praktisk detalj är att testklienten remembers cookies mellan anrop. Efter inloggningen förblir senare begäranden autentiserade utan extra arbete.
Anropa en skyddad route
Nu när du är inloggad anropar du den skyddade sidan igen. Den här gången kontrollerar du att du får 200 och ser det skyddade innehållet.
resp = client.get('/dashboard')
assert resp.status_code == 200En hjälpfunktion för inloggning
Att upprepa login-anropet blir snabbt rörigt. Lägg det i en liten helper-funktion, så blir varje autentiseringstest tydligt på en enda rad.
def login(client):
return client.post('/login', data={'email': 'a@b.com', 'password': 'pw'})En autentiserad fixture
Ännu bättre är att skapa en fixture som returnerar en already-logged-in-klient. Tester som behöver autentisering begär bara denna och hoppar över förberedelserna.
@pytest.fixture
def auth_client(client):
login(client)
yield clientTesta utloggningsflödet
Autentiseringen är inte färdig förrän utloggningen fungerar. Anropa /logout och bekräfta sedan att den skyddade routen åter avvisar den nu anonyma klienten.
client.get('/logout')
assert client.get('/dashboard').status_code == 302Hoppa över inloggningen för högre hastighet
I Flask-Login-appar kan du hoppa över formuläret och ställa in session direkt. Det går snabbare, men testar inte lika mycket av den riktiga inloggningsvägen.
with client.session_transaction() as sess:
sess['_user_id'] = '1'Testa token-skyddade API:er
För JWT-API:er finns ingen cookie. Skicka token i en Authorization header vid varje begäran för att nå en skyddad endpoint.
client.get('/api/me', headers={'Authorization': 'Bearer ' + token})Testa båda sidor av porten
Robusta autentiseringstester kontrollerar both outcomes: anonyma användare blockeras och autentiserade användare tillåts. Täck både den lyckade och den misslyckade vägen.
Snabb kontroll
Du behöver testa en dashboard som bara är tillgänglig för inloggade användare. Vad krävs för att det ska fungera?
Sammanfattning: autentiserade tester
Du loggar in via klienten, förlitar dig på dess cookie memory och kontrollerar både blockerade och tillåtna vägar. Nu är din autentisering helt testad. 🔐
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Testa autentiserade endpoints” gratis?
Ja – hela texten till ”Testa autentiserade endpoints” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Flask Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Flask Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Testa autentiserade endpoints”?
Logga in i testerna för att nå skyddade routes. Ni övar på Flask Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Flask Academy?
Du behöver inga förkunskaper. Utbildningen i Flask Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Testa autentiserade endpoints”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Flask Academy-lektionen?
Ja. Varje Flask Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Testklienten och fixtures
- Verifiera routes och JSON
- Isolera tester med en testdatabas
- Testa autentiserade endpoints