How about invalidate the user’s refresh token and the public signing key, which forces everyone to refresh and then logs out the hacked account. If it’s really serious, lock the account before doing this so the user can’t login again.
But yeah, if you have a revoke service, might as well just use session keys.
Edit: typo