From 41a65eb4566df9cfc69fc7ad58f4d06f5ab02d34 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Fri, 15 Apr 2022 11:00:22 +0200 Subject: [PATCH] :bug: Ip address can now be retrieved behind a reverse-proxy --- classquiz/routers/users.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/classquiz/routers/users.py b/classquiz/routers/users.py index 63ce3a3..6e7ab11 100644 --- a/classquiz/routers/users.py +++ b/classquiz/routers/users.py @@ -80,14 +80,21 @@ async def login_for_cookie_access_token( status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password", ) + + remote_ip = None + if request.headers.get("X-Forwarded-For") is None: + remote_ip = request.client.host + else: + remote_ip = request.headers.get("X-Forwarded-For") session_key = os.urandom(32).hex() user_session = UserSession( user=user, session_key=session_key, - ip_address=request.client.host, + ip_address=remote_ip, user_agent=request.headers.get("User-Agent"), id=uuid.uuid4(), ) + print(request.headers) await user_session.save() # await user_session.save() access_token_expires = timedelta(minutes=settings.access_token_expire_minutes)