My opinion is to have relay implement these kind of access control features instead of the client.
Of course, relay oriented features weakens the decentralization and relies more on trust.
This is an unsolved challenge. I am currently experimenting a new relay implementation for these kind of use cases.