Spaces:
Runtime error
Runtime error
| 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 | |
| # https://github.com/mkhorasani/Streamlit-Authenticator | |
| st.set_page_config(page_title="Platform tester", page_icon=":rainbow:", layout="wide", initial_sidebar_state="auto") | |
| # 如下代码数据,可以来自数据库 | |
| hashed_passwords = stauth.Hasher(['123', '456']).generate() | |
| _ = f""" | |
| credentials: | |
| usernames: | |
| nesc: | |
| email: nesc@gmail.com | |
| name: nesc | |
| password: {hashed_passwords[0]} # To be replaced with hashed password | |
| jsmith: | |
| email: jsmith@gmail.com | |
| name: John Smith | |
| password: 123 # To be replaced with hashed password | |
| rbriggs: | |
| email: rbriggs@gmail.com | |
| name: Rebecca Briggs | |
| password: 456 # To be replaced with hashed password | |
| cookie: | |
| expiry_days: 30 | |
| key: some_signature_key | |
| name: some_cookie_name | |
| preauthorized: | |
| emails: | |
| - melsby@gmail.com | |
| """ | |
| 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') | |
| # Random password to be transferred to user securely | |
| elif username_forgot_pw == False: | |
| st.error('Username not found') | |
| except Exception as e: | |
| st.error(e) |