这个库是一个用户友好的 Streamlit 登录/注册系统,基于streamlit_login_auth_ui 库改写构建。 它为开发者提供了一种简单的方法,以便在其 Streamlit 应用程序中实现安全的用户身份注册和验证。
Project description
介绍
这个插件是一个用户友好的 Streamlit 登录/注册系统,基于streamlit_login_auth_ui库改写构建, 本项目修改为了中文版,同时支持兼容更高版本的streamlit,修复了部分Bug。 它为开发者提供了一种简单的方法,以便在其 Streamlit 应用程序中实现安全的用户身份注册和验证。
streamlit版本需求
streamlit>=1.12.0
主要功能
-
用户登录与注册:允许用户使用用户名和密码安全地登录和注册新帐户。
-
密码重置功能:用户可以通过点击“忘记密码?”链接,接收一封包含临时密码的电子邮件,方便重置密码。
-
输入验证:在注册过程中,系统会验证用户名和邮箱的有效性及唯一性,确保用户输入的信息符合标准。
-
加密存储:所有用户密码都经过加密处理,增强了安全性。
-
自动登录:使用加密的 Cookie 记住用户的登录状态,避免每次都输入密码。
-
用户界面:提供一个可定制的登录/注册页面,用户可以通过修改参数来更改界面的外观和行为。
使用说明
-
依赖项安装:确保在使用之前安装了相关依赖项,包括
streamlit,argon2-cffi,trycourier等。 -
初始化和配置:创建
__login__类的实例时,传入必要的参数,如认证token和公司名称。 -
界面集成:使用
build_login_ui()方法整合所有功能,构建完整的用户界面。
作者:
PyPi链接:
( https://pypi.org/project/streamlit-login-auth-ui-zh/0.1.0/)
github:
https://github.com/Rycen7822/streamlit_login_auth_ui_zh/tree/main
The UI:
下载库
pip install streamlit_login_auth_ui_zh
要导入该库,只需在代码开头粘贴以下内容:
from streamlit_login_auth_ui_zh.widgets import __login__
您只需要为 __login__ 类创建一个对象,并传入以下参数:
主要参数说明:
- auth_token:从 Courier 获取的唯一授权token,用于安全地发送电子邮件。
- company_name:发送密码重置邮件的个人或组织的名称,例如 "Shims"。
- width:登录页面上动画的宽度,单位为像素(例如 200 像素)。
- height:登录页面上动画的高度,单位为像素(例如 250 像素)。
- logout_button_name:设置注销按钮的名称(例如 'Logout')。
- hide_menu_bool:传入
True以隐藏 Streamlit 菜单,传入False则显示菜单。 - hide_footer_bool:传入
True以隐藏“由 Streamlit 制作”的页脚,传入False则显示页脚。 - lottie_url:希望在登录页面使用的 Lottie 动画 URL,可以从 LottieFiles 上找到适合的动画。
login 类构造函数参数说明
必需参数 (Mandatory Arguments)
-
auth_token:
从 Courier 获取的token -
company_name:
发送密码重置邮件的个人或组织的名称。 -
width:
登录页面上动画的宽度。 -
height:
登录页面上动画的高度。
非必需参数 (Non Mandatory Arguments)
-
logout_button_name [默认值 = '退出登录']:
注销按钮的名称。如果不提供,默认为 '退出登录'。 -
hide_menu_bool [默认值 = False]:
传入True以隐藏 Streamlit 菜单,默认为False,表示菜单将显示。 -
hide_footer_bool [默认值 = False]:
传入True以隐藏“由 Streamlit 制作”的页脚,默认为False,表示页脚将显示。 -
lottie_url
希望在登录页面使用的 Lottie 动画的 URL。
在创建 login 类的对象之后,你需要调用该对象的 build_login_ui() 方法。这个方法将用于生成和展示登录用户界面。调用该方法的结果可以存储在一个变量中,方便后续操作。
使用 login 类构建登录用户界面的示例
本示例演示如何使用 __login__ 类构造对象并调用 build_login_ui() 方法来构建登录用户界面。
示例代码
# 引入需要的库和模块
import streamlit as st
from streamlit_login_auth_ui_zh.widgets import __login__
# 创建 __login__ 类的对象
login_ui = __login__(
auth_token="courier_auth_token", # 从 Courier 获取的授权令牌
company_name="MyCompany", # 发送密码重置邮件的公司名称
width=300, # 动画宽度
height=400, # 动画高度
)
# 调用 build_login_ui() 方法并存储返回值
user_logged_in = login_ui.build_login_ui()
# 根据返回值执行后续操作
if user_logged_in:
st.success("用户已成功登录!")
else:
st.warning("请登录以继续.")
def main():
# your streamlit app
if user_logged_in == True:
main()
注意事项
请确保将你的应用程序逻辑缩进在 if st.session_state['LOGGED_IN'] == True: 语句下,这样可以保证只有在用户安全登录后,应用程序才会运行。
说明
登录页面
登录页面,用于验证用户身份。
创建账户页面
以安全的方式将用户信息存储在 _secret_auth_.json 文件中。
忘记密码页面
在用户身份验证(电子邮件)后,触发一封包含随机密码的电子邮件发送给用户。
重置密码页面
在用户身份验证(电子邮件和通过电子邮件共享的密码)后,重置密码并更新到 _secret_auth_.json 文件中。
退出按钮
仅在用户已登录时在侧边栏生成,允许用户退出。
版本
v0.1.0
许可
本项目使用 MIT 许可证。有关详细信息,请查看 LICENSE 文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file streamlit_login_auth_ui_zh-0.1.3.tar.gz.
File metadata
- Download URL: streamlit_login_auth_ui_zh-0.1.3.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15a8e6e8039481a569921a5f3f30cda488567ede78765c70b389d930b1e1deb8
|
|
| MD5 |
519a49e752ea7c4ebdf735ca5ff5d593
|
|
| BLAKE2b-256 |
adbf63d2c8c6c75cdedd1cdbb4cdba12c6aecb46c982a8132ff53d21fa4eff18
|
File details
Details for the file streamlit_login_auth_ui_zh-0.1.3-py3-none-any.whl.
File metadata
- Download URL: streamlit_login_auth_ui_zh-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e7cd68a70f1b87286c7572aa817749ff7309ed4201304f12dd672348d349e34
|
|
| MD5 |
a663dc5383b1a6b0e6e1c461030f463a
|
|
| BLAKE2b-256 |
fed3434e1359d43592ae52d91bac5026d2cfebda62d26b664582b9a2ddb27ecf
|