python config_error ai_generated true

AssertionError: Middleware 'CORSMiddleware' must be added before 'SessionMiddleware'

ID: python/starlette-middleware-order-error

Also available as: JSON · Markdown · 中文
80%Fix Rate
82%Confidence
0Evidence
2024-12-15First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.10 active
3.11 active

Root Cause

Starlette 中间件的添加顺序不正确,违反了依赖关系

generic

中文

Starlette 中间件的添加顺序不正确,违反了依赖关系

Workarounds

  1. 95% success 按照正确顺序添加中间件
    app.add_middleware(CORSMiddleware, allow_origins=['*'])
    app.add_middleware(SessionMiddleware, secret_key='key')
  2. 90% success 查阅文档确认中间件依赖顺序
    阅读 Starlette 文档中关于中间件顺序的说明

Dead Ends

Common approaches that don't work:

  1. 删除 SessionMiddleware 并单独使用 CORS 60% fail

    会话功能丢失

  2. 使用装饰器顺序而非 add_middleware 80% fail

    装饰器顺序也可能导致相同问题