def METHOD_NAME(self, id_token):
    provider = self.get_provider()
    allowed_auds = self.get_client_id(provider)
    try:
        public_key = self.get_public_key(id_token)
        identity_data = jwt.decode(
            id_token,
            public_key,
            algorithms=["RS256"],
            audience=allowed_auds,
            issuer="https://appleid.apple.com",
        )
        return identity_data
    except jwt.PyJWTError as e:
        raise OAuth2Error("Invalid id_token") from e