Beskyt endpoints med jwt_required
Verificér tokenet ved hvert API-kald.
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}, 401Udlø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. 🔐
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
- Sessions kontra stateless tokens
- Udsted access tokens ved login
- Beskyt endpoints med jwt_required
- Refresh tokens og udløb