This shows how to decode a JWT token manually outside FastAPI dependencies.
FastAPI
from jose import jwt
# Decode token manually
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
user_id = payload.get("sub")
Sample Program
This FastAPI app has a protected route at /protected. It uses JWT token verification to allow access only if the token is valid and contains a user ID.
FastAPI
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
from jose import JWTError, jwt
app = FastAPI()
SECRET_KEY = "mysecretkey123"
ALGORITHM = "HS256"
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
asyncdef verify_token(token: str = Depends(oauth2_scheme)):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
user_id: str = payload.get("sub")
if user_id isNone:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token")
return user_id
except JWTError:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token")
@app.get("/protected")
asyncdef protected_route(user_id: str = Depends(verify_token)):
return {"message": f"Hello user {user_id}, you are authorized!"}
OutputSuccess
Important Notes
Always keep your SECRET_KEY private and never share it.
Tokens usually have an expiration time; verify it if needed.
Use HTTPS to keep tokens safe during transmission.
Summary
JWT token verification checks if a user token is valid and trusted.
FastAPI uses dependencies to get and verify tokens easily.
Protect routes by requiring a valid token before access.
Practice
(1/5)
1. What is the main purpose of JWT token verification in a FastAPI application?
easy
A. To check if the user token is valid and trusted
B. To encrypt the user's password
C. To store user data in the database
D. To generate HTML pages dynamically
Solution
Step 1: Understand JWT token role
JWT tokens are used to prove a user's identity securely.
Step 2: Identify verification purpose
Verification checks if the token is valid and trusted before allowing access.
Final Answer:
To check if the user token is valid and trusted -> Option A
Quick Check:
JWT verification = check token validity [OK]
Hint: JWT verification means confirming token is valid [OK]
Common Mistakes:
Confusing verification with encryption
Thinking JWT stores user data permanently
Mixing token verification with UI rendering
2. Which FastAPI dependency is commonly used to extract and verify a JWT token from the request header?
easy
A. Depends()
B. Form()
C. RequestBody()
D. OAuth2PasswordBearer
Solution
Step 1: Identify FastAPI dependency for JWT
OAuth2PasswordBearer is designed to extract bearer tokens from headers.
Step 2: Confirm usage for JWT verification
This dependency helps get the token string to verify it in your code.
Final Answer:
OAuth2PasswordBearer -> Option D
Quick Check:
OAuth2PasswordBearer extracts JWT token [OK]
Hint: OAuth2PasswordBearer extracts token from header [OK]
Common Mistakes:
Using Depends() alone without OAuth2PasswordBearer
Confusing Form() with header token extraction
Using RequestBody() which reads body, not headers
3. Given this FastAPI code snippet, what will happen if the JWT token is invalid?