A login page collects a username and password, asks the backend to authenticate them, and records whether the user is signed in. In a Streamlit app, it can show a success message for a valid account or an error for invalid credentials. section 8.4.2
A practical login flow connects the interface, authentication service, and application navigation:
- Call UserService.get_authenticated_user, which finds the user and checks the supplied password against the stored hash. section 8.4.2
- Store logged_in and the authenticated user in session state, then redirect to the logged-in home page. section 8.4.2
- Offer a signup link for users without accounts and expose logout so the navigation returns to login. section 8.4.3
