Hey Streamlit community ,
I wrote up a few common ways of authenticating users to your public streamlit app while iterating on an OpenAI API app in this repo
While most of them require maintaining keys / passwords in your Streamlit secrets, using a Pocketbase deployment can give you a bit more freedom to add and let users manage their accounts.
The basic idea is that you host a pocketbase instance with your user authentication information on a host such as fly.io and require users to get a valid token from there when trying to access your streamlit app.
With a setup like this you can get some nice backend features such as password reset email links and authentication via various OAuth providers out of the box (provided you configure them)