【问题标题】:Streamlit : Capturing usersession and reloading the appStreamlit:捕获用户会话并重新加载应用程序
【发布时间】: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"])

【问题讨论】:

    标签: python streamlit


    【解决方案1】:

    你得到上面问题的答案了吗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-03
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 2011-04-28
      • 2023-02-22
      • 1970-01-01
      相关资源
      最近更新 更多