Flask Academy · Lektion

Testa autentiserade endpoints

Logga in i testerna för att nå skyddade routes.

Lektion 4 av 413 steg

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 == 302

Logga 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 == 200

En 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 client

Testa 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 == 302

Hoppa ö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. 🔐

Gratis att börja

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

  1. Testklienten och fixtures
  2. Verifiera routes och JSON
  3. Isolera tester med en testdatabas
  4. Testa autentiserade endpoints
← Tillbaka till Flask Academy