【发布时间】:2023-01-09 15:09:12
【问题描述】:
我正在使用 Streamlit 创建一个简单的应用程序。应用程序有一个用户登录表单,使用Firebase 对用户进行身份验证。身份验证后我希望存储用户信息并重新加载应用程序。我可以使用以下代码实现此目的,但问题是每次我手动刷新页面时,我都会再次获得登录页面。有没有办法在手动刷新后存储用户值?
import streamlit as st
import pyrebase
#Config Key
firebaseConfig = {
'apiKey': "xxxxxxxx",
'authDomain': "xxxxxxx",
'projectId': "xxxx",
'databaseURL': "xxxxxx",
'storageBucket': "xxxxxxx",
'messagingSenderId': "xxxxxxxx",
'appId': "xxxxxxxxxxx",
'measurementId': "xxxxxxxx"
}
# Firebase Authentication
firebase = pyrebase.initialize_app(firebaseConfig)
auth = firebase.auth()
# Database
db = firebase.database()
storage = firebase.storage()
login = None
if 'cached_token' not in st.session_state:
with st.form("user_login_form"):
email = st.text_input('Please enter your email address')
password = st.text_input('Please enter your password',type = 'password')
# Every form must have a submit button.
submitted = st.form_submit_button("Submit")
if submitted:
user = auth.sign_in_with_email_and_password(email,password)
st.write("submitted",user['email'])
st.session_state["cached_token"] = "submitted",user['email']
st.write(st.session_state["cached_token"])
st.experimental_rerun()
else:
st.write('Welcome!')
st.write(st.session_state["cached_token"])
【问题讨论】: