当前位置: 首页 > news >正文

宁夏电力建设工程公司外部网站wordpress页面居中

宁夏电力建设工程公司外部网站,wordpress页面居中,家具网站开发报告,编程课哪个培训机构好在开发基于 Streamlit 的应用时#xff0c;用户认证功能是一个常见需求。本文将介绍如何通过两种方式来实现登录注册功能#xff1a;手动实现 和 使用 Streamlit-Authenticator 库。手动实现虽然灵活#xff0c;但需要自行处理密码加密、验证等细节#xff1b;而 Streamlit…在开发基于 Streamlit 的应用时用户认证功能是一个常见需求。本文将介绍如何通过两种方式来实现登录注册功能手动实现 和 使用 Streamlit-Authenticator 库。手动实现虽然灵活但需要自行处理密码加密、验证等细节而 Streamlit-Authenticator 库则大大简化了这些操作让我们能够快速搭建一个完整的用户认证系统。 一、手动实现登录注册 我们首先通过手动方式实现登录和注册功能。这种方式适用于你需要对认证流程有更多控制的场景。 1. 环境准备 在开始之前需要确保安装了 streamlit 和 bcrypt 库用于处理用户界面和密码加密。 pip install streamlit bcrypt2. 注册功能 在注册功能中用户输入用户名和密码。密码将通过 bcrypt 进行加密存储以提高安全性。 import streamlit as st import bcrypt# 模拟的用户数据库 users_db {}# 注册页面 def register():st.title(用户注册)# 输入用户名和密码new_user st.text_input(请输入用户名)new_password st.text_input(请输入密码, typepassword)if st.button(注册):if new_user in users_db:st.warning(用户名已存在请选择其他用户名)else:# 对密码进行加密hashed_password bcrypt.hashpw(new_password.encode(utf-8), bcrypt.gensalt())users_db[new_user] hashed_passwordst.success(注册成功)st.info(请返回登录页面)if __name__ __main__:register()在这个示例中用户的密码会被 bcrypt 加密后存储保证其安全性。每次用户注册时都会生成一个新的加密密码并存入 users_db。 3. 登录功能 接下来是登录功能。用户输入用户名和密码后系统会验证其输入的密码是否与存储的加密密码匹配。 # 登录页面 def login():st.title(用户登录)# 输入用户名和密码username st.text_input(请输入用户名)password st.text_input(请输入密码, typepassword)if st.button(登录):if username in users_db:# 验证密码是否匹配hashed_password users_db[username]if bcrypt.checkpw(password.encode(utf-8), hashed_password):st.success(f欢迎回来{username})st.info(你已成功登录)main_page()else:st.error(密码错误请重试)else:st.warning(用户名不存在)# 登录成功后的主页面 def main_page():st.title(主页面)st.write(这是登录后的主页面内容)if __name__ __main__:login()这里通过 bcrypt.checkpw() 函数验证用户输入的密码是否与数据库中的加密密码匹配。如果密码验证成功用户会进入主页面。 4. 页面导航 为了方便用户在登录和注册页面之间切换可以通过以下代码实现简单的页面导航功能。 def main():st.sidebar.title(导航)choice st.sidebar.radio(选择页面, [登录, 注册])if choice 登录:login()elif choice 注册:register()if __name__ __main__:main()这个页面导航让用户可以在侧边栏自由切换登录和注册功能从而提升用户体验。 5. 小结 通过以上代码我们实现了一个基本的用户登录注册系统包括 注册功能加密存储用户密码防止明文密码泄露。登录功能验证用户输入的密码是否与存储的加密密码匹配。页面导航让用户可以在不同功能页面间切换。 这种手动实现方式适合需要灵活控制认证流程的场景但当项目规模较大或需求更加复杂时这种方式可能会显得繁琐。接下来我们介绍如何使用 Streamlit-Authenticator 库来简化这一过程。 二、使用 Streamlit-Authenticator 实现登录注册 Streamlit-Authenticator 是一个专门用于 Streamlit 应用的用户认证库它能够帮助我们快速构建基于哈希加密和JWT令牌的认证系统。使用该库我们可以省去手动实现登录、注册、加密等繁琐的过程。 1. 安装 Streamlit-Authenticator 首先安装 streamlit-authenticator 库 pip install streamlit-authenticator2. 使用 Streamlit-Authenticator 实现认证 以下是使用 streamlit-authenticator 库实现用户登录的代码示例 import streamlit as st import streamlit_authenticator as stauth import yaml from yaml.loader import SafeLoader# 加载用户数据 config {credentials: {usernames: {user1: {name: User One,password: stauth.Hasher([password1]).generate()[0]},user2: {name: User Two,password: stauth.Hasher([password2]).generate()[0]}}},cookie: {expiry_days: 30,key: some_signature_key},preauthorized: {emails: [user1example.com,user2example.com]} }# 创建 Authenticator 对象 authenticator stauth.Authenticate(config[credentials],config[cookie][key],config[cookie][expiry_days], )# 登录功能 name, authentication_status, username authenticator.login(登录, main)if authentication_status:st.success(f欢迎回来, {name}!)# 退出登录按钮authenticator.logout(退出, sidebar)st.write(这里是登录后显示的内容) elif authentication_status False:st.error(用户名或密码错误) elif authentication_status None:st.warning(请输入用户名和密码)3. 代码解析 用户数据配置config 字典模拟用户数据库stauth.Hasher 用于生成加密密码。登录功能authenticator.login() 用于处理登录验证根据返回值 authentication_status 判断用户登录状态。Cookie配置项中的 cookie 设置了 JWT 的有效期并使用一个密钥来确保用户登录状态的持久性。登出功能用户成功登录后可以通过侧边栏中的按钮退出登录。 通过 Streamlit-Authenticator我们大大简化了用户登录、认证和密码加密的过程。 4. 小结 Streamlit-Authenticator 提供了开箱即用的用户认证功能尤其适用于需要快速搭建用户管理系统的场景。相比手动实现它的优点包括 内置的密码加密机制。支持长时间登录的 JWT 机制。更加安全、便捷的用户认证体验。 三、总结 本文展示了两种实现 Streamlit 用户认证的方式 手动实现我们通过 bcrypt 加密用户密码自己实现了登录、注册和认证的基本功能。这种方式适合需要灵活处理认证逻辑的场景。使用 Streamlit-Authenticator该库简化了整个认证流程提供了更安全和方便的解决方案适合需要快速构建用户系统的场景。 根据你的需求可以选择适合的实现方式。对于更复杂或更大规模的应用Streamlit-Authenticator 无疑是更好的选择。
http://www.hkea.cn/news/14555682/

相关文章:

  • 网站备案组织机构代码网站后台加什么后缀
  • 免费网站可以做cpa?国外网站开发文献
  • 信息技术初二做网站腾讯云服务器优惠
  • 网站建设与运营预算常州网站建设公司排名
  • 网站建设免费模板下载公司网站网页
  • 找个网站网站机房建设解决方案
  • 杭州定制网站建设hxsp最新域名是什么
  • 威县企业做网站制作外贸网站的公司简介
  • 淘宝客自己做网站教程百度竞价排名广告定价鲜花
  • 物流系统网站建设 的网站描述网线制作图解
  • 北京企业网站开发开发公司交的农民工工资保证金可以退还吗
  • 做ag视频大全网站个人外贸网站建设
  • 玉溪网站建设郑州专门做喷绘安装的网站
  • 北京专业网站建设公司哪家好微商分销如何搭建分销模式
  • 建设商城购物网站定制网站对公司有什么好处
  • 茶叶 企业 网站建设什么网站可以接图做图
  • 网站建设 电话好文本网站内容管理系统
  • 可以做分销的网站腾讯邮箱邮箱入口
  • 青岛做网站优化的公司最新网站建设的软件
  • 有没有找客户的网站wordpress页眉登录
  • 临汾网站建设电话dede重工蓝色企业免费网站模板
  • 做聚美优品网站得多少钱赤峰建网站
  • 集团网站建设调研报告跨平台app开发工具
  • 做房地产自己要花钱开网站工业信息化部网站备案
  • 全国 做网站的企业小型购物网站模板
  • 好看的网站后台微信公众开放平台
  • 泉州网站搭建加利弗设计公司官网
  • 网站开发与设计课程设计建e网室内设计网免下载费
  • 男女生做恶心的网站wordpress不能写文章
  • 南宁专业网站制作设计魔兽wordpress