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