Skip to content

chris-garrett/garrett-streamlit-auth0

 
 

Repository files navigation

Welcome to Auth0-Streamlit

The fastest way to provide comprehensive login inside Streamlit

Example of Streamlit-Auth0|635x380

Installation

pip install garrett-streamlit-auth0

Setup

  • Register for Auth0
  • Create a Single Page Application and navigate to the "settings" tab
  • Set your callback url's to http://localhost:8501/component/auth0_component.login_button/index.html assuming you're running on localhost or http://YOUR_DOMAIN/component/auth0_component.login_button/index.html if you're deploying
  • Copy client_id and domain from this page
  • Follow example below

Basic example

On Auth0 website start a "Single Page Web Application" and copy your client-id / domain (of form xxxx.us.auth0.com) into code below.

from auth0_component import login_button
import streamlit as st

clientId = "...."
domain = "...."

user_info = login_button(clientId, domain = domain)
st.write(user_info)

user_info will now contain your user's information

Customized domain example

If you are using a custom domain and passing in your own values for audience and issuer you can now specify those.

from auth0_component import login_button
import streamlit as st

clientId = "...."
domain = "...."
audience = "...."
issuer = "...."

user_info = login_button(
    clientId, 
    domain = domain,
    audience = audience,
    issuer = issuer,
)
st.write(user_info)

Todo

  • Pass all info through JWT, at the moment the sub field is the only field passing through verification
  • Test with other providers, Google + Azure AD tested

Deploy

  • Change version in setup.py
  • cd auth0_component/frontend/ && npm run build && cd .. && cd .. && rm -rf dist/* && python setup.py sdist bdist_wheel
  • twine upload dist/*

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 51.2%
  • JavaScript 41.7%
  • CSS 3.8%
  • Makefile 1.7%
  • HTML 1.6%