|
from meutils.pipe import * |
|
|
|
import streamlit as st |
|
import streamlit_authenticator as stauth |
|
from streamlit_authenticator import Authenticate |
|
|
|
from streamlit_option_menu import option_menu |
|
|
|
|
|
|
|
st.set_page_config(page_title="Platform tester", page_icon=":rainbow:", layout="centered", initial_sidebar_state="auto") |
|
|
|
hashed_passwords = stauth.Hasher(['123', '456']).generate() |
|
print(hashed_passwords) |
|
|
|
_ = f""" |
|
credentials: |
|
usernames: |
|
nesc: |
|
email: [email protected] |
|
name: nesc |
|
password: {hashed_passwords[0]} # To be replaced with hashed password |
|
|
|
jsmith: |
|
email: [email protected] |
|
name: John Smith |
|
password: 123 # To be replaced with hashed password |
|
|
|
rbriggs: |
|
email: [email protected] |
|
name: Rebecca Briggs |
|
password: 456 # To be replaced with hashed password |
|
|
|
x: |
|
email: [email protected] |
|
name: x |
|
password: xxx # To be replaced with hashed password |
|
cookie: |
|
expiry_days: 30 |
|
key: some_signature_key |
|
name: some_cookie_name |
|
preauthorized: |
|
emails: |
|
- [email protected] |
|
""" |
|
|
|
config = yaml.load(_) |
|
|
|
authenticator = Authenticate( |
|
config['credentials'], |
|
config['cookie']['name'], |
|
config['cookie']['key'], |
|
config['cookie']['expiry_days'], |
|
config['preauthorized'] |
|
) |
|
|
|
name, authentication_status, username = authenticator.login('Login', 'main') |
|
|
|
if authentication_status: |
|
authenticator.logout('Logout', 'main') |
|
st.write(f'Welcome *{name}*') |
|
st.title('Some content') |
|
elif authentication_status == False: |
|
st.error('Username/password is incorrect') |
|
elif authentication_status == None: |
|
st.warning('Please enter your username and password') |
|
|
|
|
|
if authentication_status: |
|
try: |
|
if authenticator.reset_password(username, 'Reset password'): |
|
st.success('Password modified successfully') |
|
except Exception as e: |
|
st.error(e) |
|
|
|
|
|
try: |
|
if authenticator.register_user('Register user', preauthorization=False): |
|
st.success('User registered successfully') |
|
except Exception as e: |
|
st.error(e) |
|
|
|
|
|
try: |
|
username_forgot_pw, email_forgot_password, random_password = authenticator.forgot_password('Forgot password') |
|
if username_forgot_pw: |
|
st.success('New password sent securely') |
|
|
|
elif username_forgot_pw == False: |
|
st.error('Username not found') |
|
except Exception as e: |
|
st.error(e) |