Tip
Learn more in User authentication and information.
st.logout
Logout the current user.
This command removes the user's information from st.user, deletes their identity cookie, and redirects them to perform a proper logout from the OAuth provider (if available) before returning to your app's home page. This creates a new session.
If the user has multiple sessions open in the same browser, st.user will not be cleared in any other session. st.user only reads from the identity cookie at the start of a session. After a session is running, you must call st.login() or st.logout() within that session to update st.user.
Note
If the OAuth provider supports OIDC end_session_endpoint in their server metadata, the user will be logged out from the identity provider as well. If not available, only local logout is performed.
| Function signature[source] | |
|---|---|
st.logout() |
Example
.streamlit/secrets.toml:
[auth] redirect_uri = "http://localhost:8501/oauth2callback" cookie_secret = "xxx" client_id = "xxx" client_secret = "xxx" server_metadata_url = "https://accounts.google.com/.well-known/openid-configuration" # fmt: skip
Your app code:
import streamlit as st
if not st.user.is_logged_in:
if st.button("Log in"):
st.login()
else:
if st.button("Log out"):
st.logout()
st.write(f"Hello, {st.user.name}!")
Tip
Want a new st.logout feature or found a bug? Browse open issues and react with a 👍 on the initial post of the ones that matter to you. Your votes help us prioritize what to work on next.
Still have questions?
Our forums are full of helpful information and Streamlit experts.