Creating a registration wall with whitelisted emails?

I want to create a blog site that contains gated content. I want users to be able to sign up/login with their email to these posts, but I only want to accept signups from certain emails/emails from specific domains (a whitelist). I also want to verify these emails to make sure they’re real. What is the best integration I can use to achieve this?