Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)

这篇具有很好参考价值的文章主要介绍了Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Streamlit官方文档中,没有提供提供安全身份验证组件。目前,第三方streamlit-authenticator提供此功能,详见引用我原来的博文,在《Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践》文中,原使用的代码报错:

authenticator = stauth.Authenticate(names, usernames, hashed_passwords,
TypeError: __init__() got multiple values for argument 'cookie_expiry_days'

报错原因是Streamlit-Authenticator包升级了,原代码发生了改变,解决办法如下:

import streamlit as st
import streamlit_authenticator as stauth
import PVForecastWeb

# 此行代码被强制要求放在第一行。
st.set_page_config(layout="wide") #设置屏幕展开方式,宽屏模式布局更好

credentials = {'usernames': {
                'xiaoyw': {'email': 'xiaoyw****@gmail.com',
                            'name': '肖永威',
                            'password': '*************'},   
                'admin': {'email': 'admin***@gmail.com',
                            'name': '管理员',
                            'password': '************  '} 
                            }
               }

authenticator = stauth.Authenticate(credentials,
    'some_cookie_name', 'some_signature_key', cookie_expiry_days=30)

name, authentication_status, username = authenticator.login('Login', 'main')

if authentication_status:
    with st.container():
        cols1,cols2 = st.columns(2)
        cols1.write('欢迎 *%s*' % (name))
        with cols2.container():
            authenticator.logout('Logout', 'main')

    PVForecastWeb.main()  # 进入业务应用
elif authentication_status == False:
    st.error('Username/password is incorrect')
elif authentication_status == None:
    st.warning('Please enter your username and password')

其中,密码使用其提供的函数加密,输出字符串沾到代码中即可。

hashed_passwords = stauth.Hasher(['S0451', 'ad4516']).generate()

Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)

当然,可以使用其帮助https://github.com/mkhorasani/Streamlit-Authenticator/tree/main中的yaml配置文件,在此不再累述。

版本变化情况:

版本号 时间 说明
v0.2.2 May 2023 Added a unique key for the logout button to prevent duplicate key errors.
v0.2.1 Jun 25, 2022
v0.1.5 May 24, 2022 Enhanced reauthentication cookie checking,Featured ability to import credentials and cookie setting

参考:
肖永威. Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践. CSDN博客. 2022.05文章来源地址https://www.toymoban.com/news/detail-456748.html

到了这里,关于Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WCF服务应用程序的创建和使用

    1.创建WCF服务应用程序: https://blog.csdn.net/weixin_44690047/article/details/119087706

    2024年02月08日
    浏览(56)
  • 使用Docker构建分布式应用程序

    作者:禅与计算机程序设计艺术 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。 传统的应用分为三层结构:应用运行环境、应用逻辑和资源管理,Doc

    2024年02月08日
    浏览(79)
  • 如何使用 Python 创建 Twitter 应用程序

    简介 通过访问 Twitter API,您可以管理社交媒体账户,并且可以从社交媒体中获取数据。如果您代表一个企业或组织,这对品牌推广很有帮助;对于个人用户和业余程序员来说,这也可以是一种有趣的娱乐方式。 在本文中,我们将概述创建 Twitter 应用程序所需的步骤。 然后,

    2024年02月20日
    浏览(61)
  • C#程序设计——Windows应用程序开发,1、初步掌握Windows应用程序的设计方法。2、掌握常用窗体控件的使用方法。

    初步掌握Windows应用程序的设计方法。 掌握常用窗体控件的使用方法。 1、设计一个Windows应用程序,创建一个用于添加学生个人基本信息的窗体,窗体下方法同时滚动信息“天行健,君子以自强不息!”。   要示如下: 如图1所示,设计窗体界面控件的布局 图1 学生信息管理

    2024年02月10日
    浏览(85)
  • WPF嵌入外部exe应用程序-使用Winfom控件承载外部程序

    首先要解决在WPF中如何使用Winfom控件的问题,官方对此有支持的方式。 在引用管理器中添加winfrom相关的程序集 System.Windows.Forms 和 WindowsFormsIntegration 。 然后使用winform的控件,得在外面套一层WindowsFormsHost(好像添加了WindowsFormsIntegration,不使用wfi:也能使用) 这样就可以在WPF中使

    2024年02月17日
    浏览(65)
  • 如何使用代码混淆技术保护移动应用程序安全

    在移动应用开发过程中,代码保护一直是一个重要的议题。为了保护应用程序免受黑客攻击和逆向工程师的破解,开发人员使用各种方法来加强应用程序的安全性。其中,代码混淆是一种常用的技术,可以通过对代码进行混淆、压缩和重命名等操作,使得应用程序的代码难以

    2024年01月17日
    浏览(69)
  • 使用 Docker 进行 Go 应用程序引导指南

    在使用 Go 开发 Web 应用程序时,无论是用于 HTTP 还是其他类型的服务,部署到不同的阶段或环境(本地开发、生产环境等)都是一个常见的考虑因素。在本文中,我们将探讨在 Docker 容器内集成 Golang 栈的方法,这是一个被广泛采用的方法,并使用 Docker Compose 进行编排。 首先

    2024年01月17日
    浏览(58)
  • 如何使用Vue.js构建桌面应用程序

    Vue.js是一个流行的JavaScript框架,可以用于构建Web应用程序。但是,Vue.js也可以用于构建桌面应用程序。本文将介绍如何使用Vue.js构建桌面应用程序,包括以下步骤: 1. 选择一个Vue.js框架:选择一个适合你的Vue.js框架。我们推荐使用Electron,因为它是最流行的桌面应用程序框架

    2024年02月15日
    浏览(51)
  • 如何在Android设备上检查应用程序使用情况,包括使用时间

    你可能不知道自己花了多少时间在手机上。很可能你一天中有一半的时间都在盯着手机屏幕。如果你怀疑这一事实,你会很快核实的。在这篇文章中,我们将向你介绍如何在Android设备上检查应用程序的使用情况。 你使用时间最长的应用程序可能会消耗最多的电池。然而,有

    2024年02月07日
    浏览(55)
  • Spark 部署与应用程序交互简单使用说明

    本文将讲解 Spark 的部署,并通过三个简单的步骤来编写一个独立应用程序。 我们将使用本地模式,其中所有的处理都是在Spark shell中的一台机器上完成的——这是学习框架的一种简单方法,迭代执行的方式可以及时反馈直接结果。使用Spark shell,可以在编写复杂的Spark应用程

    2024年04月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包