Authentication
Tutorials
Basic Authentication
auth.py
import secrets
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBasic, HTTPBasicCredentials
security = HTTPBasic()
def authenticate_user(credentials: HTTPBasicCredentials = Depends(security)):
# In a real application, you'd verify against a database
correct_username = secrets.compare_digest(credentials.username, "admin")
correct_password = secrets.compare_digest(credentials.password, "secret")
if not (correct_username and correct_password):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid credentials",
headers={"WWW-Authenticate": "Basic"},
)
return credentials.username
main.py
from fastapi import FastAPI, Depends
from auth import authenticate_user
app = FastAPI(title="Authentication Demo", version="1.0.0")
@app.get("/")
async def root():
return {"message": "Welcome to FastAPI Authentication Demo"}
@app.get("/protected")
async def protected_route(current_user: str = Depends(authenticate_user)):
return {"message": f"Hello {current_user}, this is a protected route!"}
No comments to display
No comments to display