Flask Academy · Lektion

Beskyt endpoints med jwt_required

Verificér tokenet ved hvert API-kald.

Lektion 3 af 413 trin

Beskyt endpoints med jwt_required er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.

Beskyt en rute

Et token er kun nyttigt, hvis nogle ruter kræver det. Dekoratoren jwt_required gør enhver visning til et endpoint kun for medlemmer. 🔒

Anvend dekoratoren

Sæt @jwt_required() under din rute. Nu kører visningen kun, når der kommer et gyldigt token, som ikke er udløbet.

@app.get("/profile")
@jwt_required()
def profile():
    ...

Hvor tokenet placeres

Klienter sender tokenet i Authorization-headeren ved hjælp af Bearer-skemaet. Flask-JWT-Extended læser det automatisk derfra.

Authorization: Bearer <your-token>

Automatisk afvisning

Intet token eller et ugyldigt token? Dekoratoren stopper forespørgslen, før din kode kører, og returnerer en 401. Du skriver ingen kontrol-logik.

Hvem kalder

Inde i en beskyttet visning skal du kalde get_jwt_identity for at læse den identitet, du signerede ved login, som regel bruger-id'et.

from flask_jwt_extended import get_jwt_identity
uid = get_jwt_identity()

Læs alle claims

Har du brug for ekstra claims som en rolle? get_jwt returnerer hele payloaden som en dict, så du kan vælge ud fra indholdet.

from flask_jwt_extended import get_jwt
role = get_jwt().get("role")

Brug identiteten

Med bruger-id'et i hånden indlæser du brugeren og leverer vedkommendes data. Tokenet fortalte dig hvem, så resten er almindelig Flask. 🙂

user = User.query.get(get_jwt_identity())

Valgfri beskyttelse

Vil du have en side, der tilpasser sig, uanset om nogen er logget ind? Brug optional=True, så visningen kører i begge tilfælde.

@jwt_required(optional=True)

Tilpas fejlen

Registrér en unauthorized_loader for at returnere en venlig JSON-meddelelse i stedet for standardadfærden, når et token mangler.

@jwt.unauthorized_loader
def missing(reason):
    return {"msg": reason}, 401

Udløbne tokens

Et udløbet token afvises også af dekoratoren. Klienten skal logge ind igen eller forny tokenet for at fortsætte, hvilket holder stjålne tokens kortlivede.

Stol aldrig på bodyen

Læs den kaldende bruger fra tokenet, aldrig fra et bruger-id i anmodningens body. Det er signaturen, der gør identiteten troværdig.

Hurtigt tjek

Husk, hvordan en beskyttet visning finder ud af, hvem der kalder den.

Opsummering

Tilføj @jwt_required() for at beskytte en rute, send tokenet som en Bearer-header, og læs den kaldende bruger med get_jwt_identity. 🔐

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Beskyt endpoints med jwt_required” gratis?

Ja — hele teksten til “Beskyt endpoints med jwt_required” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Beskyt endpoints med jwt_required”?

Verificér tokenet ved hvert API-kald. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Flask Academy?

Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Beskyt endpoints med jwt_required”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Flask Academy-lektion?

Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Sessions kontra stateless tokens
  2. Udsted access tokens ved login
  3. Beskyt endpoints med jwt_required
  4. Refresh tokens og udløb
← Tilbage til Flask Academy