0

I can set up language variable cookie like this:

@app.get("/language/{lang}")
async def language(request: Request, lang: str = None):

    response = RedirectResponse(url="/")
    if lang == 'en':
        #request.session["lang"] = 'en'
        response.set_cookie(key="lang", value="en")
    elif lang == 'lt':
        #request.session["lang"] = 'lt'
        response.set_cookie(key="lang", value="lt")


    return response

How could I intercept all urls and set default cookie if none exists?

I tried with no luck like this:

@app.middleware("http")
async def some_middleware(request: Request, call_next):
    response = await call_next(request)
    session = request.cookies.get('session')

    if session:
        response.set_cookie(key='session', value=request.cookies.get('session'), httponly=True)
    lang_cookie = request.cookies.get('lang')
    if not lang_cookie:
        response.set_cookie(key="lang", value="en")
        
    return response
Tomas Am
  • 433
  • 4
  • 13

0 Answers0