g-auth / README.md
Youssefk's picture
Upload 6 files
77d998d
# streamlit-google-oauth
An example [Streamlit](https://streamlit.io/) application that incorporates Google OAuth 2.0
## PIP
```bash
pip install git+https://github.com/hunkim/streamlit-google-oauth
```
## Setup Google OAuth client ID
<img width="1434" alt="image" src="https://user-images.githubusercontent.com/901975/170391098-c3a79b40-283a-4f78-a318-c4603bb18bb9.png">
### Make sure people api is enabled
<img width="1070" alt="image" src="https://user-images.githubusercontent.com/901975/170388473-4664ce58-6a06-4237-9fbe-d88787f41c22.png">
## Put client id, etc. in env
Put in the .env file
```bash
~/streamlit-google-oauth$ cat .env
GOOGLE_CLIENT_ID=767025784452-fscnojvddiek...
GOOGLE_CLIENT_SECRET=GOCSPX-KE4_...
GOOGLE_REDIRECT_URI=http://localhost:8080
```
or
```bash
export GOOGLE_CLIENT_ID="xxx"
export GOOGLE_CLIENT_SECRET="yyy"
export GOOGLE_REDIRECT_URI="http://localhost:8080"
```
## Add login in your streamlit app
```python
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
```bash
streamlit run app.py --server.port 8080
```
## Quick demo screenshots
![Quick demo](https://user-images.githubusercontent.com/901975/170390886-004e7243-7cac-4ace-91fc-ede46ad40c5f.png)