streamlit-google-oauth
An example Streamlit application that incorporates Google OAuth 2.0
PIP
pip install git+https://github.com/hunkim/streamlit-google-oauth
Setup Google OAuth client ID
![image](https://user-images.githubusercontent.com/901975/170391098-c3a79b40-283a-4f78-a318-c4603bb18bb9.png)
Make sure people api is enabled
![image](https://user-images.githubusercontent.com/901975/170388473-4664ce58-6a06-4237-9fbe-d88787f41c22.png)
Put client id, etc. in env
Put in the .env file
~/streamlit-google-oauth$ cat .env
GOOGLE_CLIENT_ID=767025784452-fscnojvddiek...
GOOGLE_CLIENT_SECRET=GOCSPX-KE4_...
GOOGLE_REDIRECT_URI=http://localhost:8080
or
export GOOGLE_CLIENT_ID="xxx"
export GOOGLE_CLIENT_SECRET="yyy"
export GOOGLE_REDIRECT_URI="http://localhost:8080"
Add login in your streamlit app
import streamlit as st
import os
from dotenv import load_dotenv
import streamlit_google_oauth as oauth
load_dotenv()
client_id = os.environ["GOOGLE_CLIENT_ID"]
client_secret = os.environ["GOOGLE_CLIENT_SECRET"]
redirect_uri = os.environ["GOOGLE_REDIRECT_URI"]
if __name__ == "__main__":
login_info = oauth.login(
client_id=client_id,
client_secret=client_secret,
redirect_uri=redirect_uri,
login_button_text="Continue with Google",
logout_button_text="Logout",
)
if login_info:
user_id, user_email = login_info
st.write(f"Welcome {user_email}")
else:
st.write("Please login")
Run streamlit with google oauth
streamlit run app.py --server.port 8080