I have a very hacky but 9000% secure solution for you =)
Deploy an app to a server
Close all ports except 22 (ssh)
Launch streamlit on some port locally
Do not expose this port to the world
Use ssh tunnel to access your streamlit app
Whenever you grant access to someone just add his public ssh key to authorized_keys
(we do it all the time with notebooks and similar things)