Use Google authentification in streamlit
Project description
Streamlit Google Auth
This package provides a simple and easy-to-use integration of Google authentication in your Streamlit application.
Getting Started
-
Install the package:
pip install streamlit-google-auth
-
Create a Google Cloud Platform project and obtain the client ID and client secret. You can follow the instructions here to create the credentials.
-
Save the client ID and client secret in a JSON file (e.g., google_credentials.json).
-
Import the necessary modules and initialize the Authenticate class:
import streamlit as st from streamlit_google_auth import Authenticate authenticator = Authenticate( secret_credentials_path='google_credentials.json', cookie_name='my_cookie_name', cookie_key='this_is_secret', redirect_uri='http://localhost:8501', )
-
Check if the user is already authenticated and handle the login/logout flow:
# Check if the user is already authenticated authenticator.check_authentification() # Display the login button if the user is not authenticated if not st.session_state.get('connected', False): authorization_url = authenticator.get_authorization_url() st.markdown(f'[Login]({authorization_url})') st.link_button('Login', authorization_url) # Display the user information and logout button if the user is authenticated else: st.image(st.session_state['user_info'].get('picture')) st.write(f"Hello, {st.session_state['user_info'].get('name')}") st.write(f"Your email is {st.session_state['user_info'].get('email')}") if st.button('Log out'): authenticator.logout()
That's it! Your Streamlit app now has Google authentication integrated.
Configuration
The Authenticate class takes the following parameters:
secret_credentials_path
: The path to the Google Cloud Platform credentials JSON file.cookie_name
: The name of the cookie used to store the authentication information.cookie_key
: The secret key used to encrypt the cookie.redirect_uri
: The redirect URI of your Streamlit application.cookie_expiry_days
: Optional, The number of days the cookie stay valid.
Functions
The Authenticate class provides the following functions:
check_authentification()
: Catch the event when the user come back from the google login page and log it.login()
: Displays the login button and handles the authentication flow.logout()
: Logs out the user and clears the session state.get_authorization_url()
: Returns the URL for the Google authentication page.
Session State
The Authenticate class updates the following keys in the Streamlit session state:
connected
: A boolean indicating whether the user is authenticated or not.oauth_id
: The unique identifier for the authenticated user.user_info
: A dictionary containing the user's name, email, and profile picture URL.
Example
Here's a complete example of how to use the Authenticate class in a Streamlit app:
import streamlit as st
from streamlit_google_auth import Authenticate
st.title('Streamlit Google Auth Example')
if 'connected' not in st.session_state:
authenticator = Authenticate(
secret_credentials_path = 'google_credentials.json',
cookie_name='my_cookie_name',
cookie_key='this_is_secret',
redirect_uri = 'http://localhost:8501',
)
st.session_state["authenticator"] = authenticator
# Catch the login event
st.session_state["authenticator"].check_authentification()
# Create the login button
st.session_state["authenticator"].login()
if st.session_state['connected']:
st.image(st.session_state['user_info'].get('picture'))
st.write('Hello, '+ st.session_state['user_info'].get('name'))
st.write('Your email is '+ st.session_state['user_info'].get('email'))
if st.button('Log out'):
st.session_state["authenticator"].logout()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for streamlit-google-auth-1.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 551f7425a355e99637492afa35ebe7d72084ffbcd0fb7d80cef2b450c67124b4 |
|
MD5 | 0abb6a67986569645e4f0c7bd9f7bab9 |
|
BLAKE2b-256 | e287a77bb366b04ca989eba89fefd91102756781cfbf1951a01c543d21a59b04 |
Hashes for streamlit_google_auth-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d362208cc3485ced3607f24d438a4c155d503c15c27276cc49015c9296423790 |
|
MD5 | 27f818e0553e4e2533a36cb7e32cd03e |
|
BLAKE2b-256 | a1859479ac9a29488b2a009cb47dbc70c1a42ce74b17c5b5a614bcc22e2ca2bd |