Yeap, it’s a thing.
– manzoor
Here and Now on KUT – How financial anxiety impacts long-term health
Had to drag myself but eventually did manage to do my New Year tradition – Coffee / Breakfast at Mozart’s. Had gone to bed way too late last nite, actually early this morning and got very little sleep but eventally I did get myself to get over and even though they didn’t have the blueberry danish, I made do wtih a Apple Danish.
– manzoor
I completely accidently stumbled on this article in the Smithsonian magazine. Apparently it just turned 300 years old.
Surprisingly the Sobrino de Botín’s website actually says it is “one of the oldest” and the oldest is actually Ma Yu Ching’s Bucket Chicken.
– manzoor
– manzoor
– manzoor
A very randomly started watching the first episode last evening and kinda got hooked on the way the episode was progressing. But then towrds the end of the episode Ted Danson stands and recites All the World’s a Stage.
– manzoor
– manzoor
A Process / method by which we would breakdown a relatively complex idea into it’s most fundamental truths and then building upward.
– manzoor
Controlling access to a FastAPI app typically involves implementing authentication and authorization mechanisms. Here are some **decent approaches** to achieve this:
## 1. Authentication
– **OAuth2 with Password (and Bearer)**
– Use FastAPI’s built-in support for OAuth2 for handling user login and issuing JWT tokens.
– Users authenticate by providing a username and password, and receive a token which they then include in the Authorization header for subsequent API requests.
– **API Key**
– Require clients to include a secret API key (in headers or query parameters) with each request.
– Simple but less user-friendly and secure than OAuth2/JWT.
– **Session Authentication**
– Use cookie-based sessions for traditional web apps.
## 2. Authorization
– **Role-Based Access Control (RBAC)**
– Assign users roles (like admin, user, guest) and restrict certain endpoints or actions based on the user’s role.
– **Resource-Based Permissions**
– Check user-specific access for resources (e.g., users can only access their own data).
## 3. Implementation in FastAPI
Example of using OAuth2/JWT bearer authentication:
“`python
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
from jose import JWTError, jwt
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl=”token”)
def verify_token(token: str = Depends(oauth2_scheme)):
# Add your logic to verify JWT token here
try:
payload = jwt.decode(token, “your_secret_key”, algorithms=[“HS256”])
return payload
except JWTError:
raise HTTPException(status_code=401, detail=”Invalid token”)
@app.get(“/protected-route”)
def protected_route(user=Depends(verify_token)):
return {“message”: “You have access!”}
“`
## 4. Third-Party Libraries
– **fastapi-users**
Provides pluggable user authentication, registration, password management, and more.
– **Authlib**
Flexible library for implementing OAuth and JWT.
## 5. Additional Tips
– Always use HTTPS in production to protect credentials in transit.
– Regularly update dependencies to keep security patches up to date.
– Use environment variables to store secrets (never commit secrets in code).
This approach ensures robust access control suitable for both web and API-based FastAPI apps.
Here’s a comprehensive guide for deploying a FastAPI application with Docker on AWS:This comprehensive guide covers multiple deployment strategies for FastAPI applications on AWS. Here are the key approaches:
For “production” applications:
For simple/low-traffic applications:
Key considerations:
– manzoor