Login form

Hello i’m a new user of streamlit and i am trying to do a login form, but i face some issues.
I tried to use the streamlit-authenticator library, i used the script bellow :

import streamlit as st
import pickle
from pathlib import Path
import streamlit_authenticator as stauth

st.set_page_config(page_title=“app”, layout=“wide”)

names = [“User1 name1”, “User2 name2”]
usernames = [“uname1”, “uname2”]

load hashed passwords

file_path = Path(file).parent / “hashed_pw.pkl”
with file_path.open(“rb”) as file:
hashed_passwords = pickle.load(file)

authenticator = stauth.Authenticate(names, usernames, hashed_passwords,
“App”, “abcdef”, cookie_expiry_days=30)

name, authentication_status, username = authenticator.login(“Login”, “main”)

if authentication_status == False:
st.error(“Username/password is incorrect”)

if authentication_status == None:
st.warning(“Please enter your username and password”)

if authentication_status:
“Body App”

Note : I stored the passwords in hashed_pw.pkl file.

When i run that code, i got this Error : streamlit.runtime.scriptrunner.script_runner.StopException File “path”, loginobj = login(auth_token = “courier_auth_token”.

What can i do to resolve this ?
Also, if there is another library to do this, i take it.

Thank you for you answers !
Happy streamlit ing

Have a look at this streamlit_login_auth_ui authenticator.

Sample code from site.

import streamlit as st
from streamlit_login_auth_ui.widgets import __login__

__login__obj = __login__(auth_token = "courier_auth_token", 
                    company_name = "Shims",
                    width = 200, height = 250, 
                    logout_button_name = 'Logout', hide_menu_bool = False, 
                    hide_footer_bool = False, 
                    lottie_url = 'https://assets2.lottiefiles.com/packages/lf20_jcikwtux.json')

LOGGED_IN = __login__obj.build_login_ui()

if LOGGED_IN:

    st.markown("Your Streamlit Application Begins here!")

If you are comfortable with that, you can try the PR I made with some improvements.

You can also try the Streamlit Authentication without SSO.

1 Like

Hello fredy, thank you for the reply.
About the example code you give me, in order to try it, i installed :

  • pip install streamlit-login-auth-ui
  • pip install argon2-cffi

And after runing the same code, i got this error :
Traceback (most recent call last) :
File “path”, line 6, in __login__obj = login(auth_token = “courier_auth_token”,
File “path”, line 54, in __init__st.stop()
File “path”, line 41, in stop raise StopException()
streamlit.runtime.scriptrunner.script_runner.StopException

can you help me fixing this ?

May I know the following.

OS?
Streamlit version?
Python version?

Of course, here are the information:
i an using :
Windows 10
Streamlit, version 1.16.0
Python 3.10.5

Let’s try the following setup.

  1. Open powershell and create a temp_streamlit folder from your c drive or any drive.

image

  1. cd to temp_streamlit folder and check you python version.

image

  1. Create a virtual environment folder called venv with:
    python -m venv venv

image

  1. Clone the repo of aut ui with:
    git clone https://github.com/GauriSP10/streamlit_login_auth_ui

image

  1. Activate the virtual environment. We will install streamlit and other needed packages.
    ./venv/scripts/activate

image

  1. Update pip with:
    python -m pip install pip -U

  2. Install streamlit with:
    pip install streamlit

  3. Install the auth ui package with:
    pip install streamlit-login-auth-ui

  4. Install argon with:
    pip install argon2-cffi

  5. cd to the aut ui folder and run the app.
    There is app.py under streamlit_login_auth_ui folder.

image

You should see something like this.

If you no longer need it, just delete temp_streamlit folder.

1 Like

Oh Thank you so much, i followed your steps and it works. i just have a last question : when i run the script using the play button i got this error (in my first message), but when i write in the terminal : “streamlit run app.py” it works correctly. it’s confusing me

I don’t understand that. What is play button?

i am using visual studio code, as ide, i am talking About the “Run python file” button

Ahh ok, I also use vs code. But I don’t use that button to run streamlit.

Ok, Thank you very much for your help !

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.