fastapi SessionMiddleware 获取当前 sessionid
时间: 2024-05-03 08:19:44 浏览: 250
在 FastAPI 中,可以使用 SessionMiddleware 中间件来轻松地管理会话。
要获取当前会话的 sessionid,您可以使用以下代码:
from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordRequestForm
from fastapi.middleware.session import SessionMiddleware
from fastapi.responses import JSONResponse
from fastapi import Request
app = FastAPI()
app.add_middleware(SessionMiddleware, secret_key="mysecret")
@app.post("/login")
async def login(form_data: OAuth2PasswordRequestForm = Depends()):
# 这里可以根据实际情况,检查用户名和密码是否正确
# 如果正确,可以将用户信息存储到 session 中
session = request.session
session["logged_in"] = True
session["username"] = form_data.username
return {"message": "Successfully logged in."}
@app.get("/protected")
async def protected(request: Request):
session = request.session
if session.get("logged_in"):
return {"message": f"Hello, {session.get('username', '')}!"}
else:
return JSONResponse(content={"message": "Not logged in."}, status_code=401)
在上面的代码中,我们使用了 SessionMiddleware 中间件来管理会话。在登录路由中,我们可以将用户信息存储到 session 中。在受保护的路由中,我们可以检查 session 中是否存在“logged_in”键来确定用户是否已经登录,并且返回相应的信息。
注意:在使用 SessionMiddleware 中间件时,需要提供一个 secret_key。该密钥用于对 session 数据进行加密和解密。建议将其设置为一个随机的、复杂的字符串,以确保安全性。
阅读全文
相关推荐


















