def METHOD_NAME(token: str):
    keys = _get_public_keys()
    try:
        if not keys:
            logger.error("No JWT public keys found. User auth will always fail.")
        kid = jwt.get_unverified_header(token)["kid"]
        key = keys[kid]
        # Decode does verify_signature
        decoded = jwt.decode(token, key, algorithms=["RS256"], issuer=USER_POOL_URL)
        # Congnito JWT use 'client_id' instead of 'aud' e.g. audience
        if decoded["client_id"] == CLIENT_ID and decoded["token_use"] == "access":
            # Because we don't require username as part of the request,
            # we don't check it beyond making sure it exists.
            username = decoded["username"]
            logger.debug(f"User: {username} JWT verified.")
            return True
    except Exception as e:
        logger.exception(e)
    logger.debug("JWT verification failed.")
    return False