小编28 *_*cky的帖子

FastAPI/Starlette 的 SessionMiddleware 为每个请求创建新会话

我需要在session_set端点中创建一个用于身份验证的会话。但是,由于某种原因,会话仍在端点中创建session_info。如何使会话仅在中创建session_set?否则,我会在每个请求的响应中都有一个新会话。

这是我的代码:

import uvicorn
from fastapi import FastAPI, Request
from starlette.middleware.sessions import SessionMiddleware

app = FastAPI()
app.add_middleware(SessionMiddleware, secret_key="some-random-string", max_age=None)


@app.get("/a")
async def session_set(request: Request):
    request.session["my_var"] = "1234"
    return 'ok'


@app.get("/b")
async def session_info(request: Request):
    my_var = request.session.get("my_var", None)
    return my_var


if __name__ == '__main__':
    uvicorn.run('http-session:app', port=5000, reload=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

python session session-cookies starlette fastapi

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

fastapi ×1

python ×1

session ×1

session-cookies ×1

starlette ×1