def get_username_from_token(token: str, secret_key: str) -> str: try: return JWTUser(**jwt.decode(token, secret_key, algorithms=[ALGORITHM])).username except jwt.PyJWTError as decode_error: raise ValueError("unable to decode JWT token") from decode_error except ValidationError as validation_error: raise ValueError("malformed payload in token") from validation_error
def create_access_token_for_user(user: User, secret_key: str) -> str: print(f"JWTUser: {JWTUser(username=user.username).dict()}") return create_jwt_token( jwt_content=JWTUser(username=user.username).dict(), secret_key=secret_key, expires_delta=timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) )
def create_refresh_token_for_user(user: User, secret_key: str) -> str: return create_jwt_token( jwt_content=JWTUser(username=user.username).dict(), secret_key=secret_key, expires_delta=timedelta(minutes=config.REFRESH_TOKEN_EXPIRE_MINUTES), )