token-type-tolerance

This commit is contained in:
Untone 2023-10-13 14:45:24 +03:00
parent 792d60453a
commit e9f68c8fb1
3 changed files with 9 additions and 0 deletions

View File

@ -28,6 +28,9 @@ class JWTAuthenticate(AuthenticationBackend):
return AuthCredentials(scopes={}, error_message=str("no token")), AuthUser( return AuthCredentials(scopes={}, error_message=str("no token")), AuthUser(
user_id=None, username="" user_id=None, username=""
) )
if token.startswith("Bearer"):
token = token[len("Bearer "):]
if len(token.split(".")) > 1: if len(token.split(".")) > 1:
payload = await SessionToken.verify(token) payload = await SessionToken.verify(token)

View File

@ -33,6 +33,9 @@ async def get_current_user(_, info):
auth: AuthCredentials = info.context["request"].auth auth: AuthCredentials = info.context["request"].auth
token = info.context["request"].headers.get(SESSION_TOKEN_HEADER) token = info.context["request"].headers.get(SESSION_TOKEN_HEADER)
if token.startswith("Bearer"):
token = token[len("Bearer "):]
with local_session() as session: with local_session() as session:
user = session.query(User).where(User.id == auth.user_id).one() user = session.query(User).where(User.id == auth.user_id).one()
user.lastSeen = datetime.now(tz=timezone.utc) user.lastSeen = datetime.now(tz=timezone.utc)

View File

@ -21,6 +21,9 @@ class RedisCache:
return await self._client.execute_command(command, *args, **kwargs) return await self._client.execute_command(command, *args, **kwargs)
except Exception as e: except Exception as e:
print(f"[redis] error: {e}") print(f"[redis] error: {e}")
import traceback
traceback.print_exc()
return None return None
async def subscribe(self, *channels): async def subscribe(self, *channels):