Sign-in providers want a real name.
Google, for one, accepts plain http://localhost, but not acme.localhost, not a .test name and not a bare IP address. Anything else must be https, under a public top-level domain. The moment your app has tenants or a callback of its own, that means a real domain.