stauth 中的区分大小写问题。Authenticate 类 - 转换为小写的密钥

Case Sensitivity Issue in stauth.Authenticate Class - Keys Converted to Lowercase

提问人:Abdul Awal Nadim 提问时间:11/16/2023 最后编辑:Abdul Awal Nadim 更新时间:11/16/2023 访问量:63

问:

使用 stauth。我的 Python(Streamlit) 代码中的 authenticate 类给我带来了麻烦。该问题似乎与字典键中的区分大小写有关。我有一组从数据库中检索到的用户凭据,并且我正在构建一个字典以与 stauth 一起使用。对类进行身份验证。但是,在创建类的实例后,字典中的键将转换为小写。这是我的代码的简化版本:

user_names = run_query("SELECT tbl_acl.user FROM tbl_acl")
# Converting to List
user_names_list = [item[0] for item in user_names]

names = run_query("SELECT last_name FROM tbl_acl")
names_list = [item[0] for item in names]

passwords = run_query("SELECT password FROM tbl_acl")
passwords_list = [item[0] for item in passwords]

hashed_passwords = stauth.Hasher(passwords_list).generate()

credentials = {"usernames": {}}

for un, name, pw in zip(user_names_list, names, hashed_passwords):
    user_dict = {"name": name, "password": pw}
    credentials["usernames"].update({un: user_dict})

print(credentials) 

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

print(credentials)

在打印的凭据词典中,密钥最初有混合大小写('AbduL'、'AwaL'、'NadiM'),但在使用 stauth 之后。Authenticate 类,密钥将转换为小写 ('abdul', 'awal','nadim')。我已经查看了 stauth 库的文档,但找不到有关此行为的信息。

1st --> print(credentials)

{'usernames': {'AbduL': {'name': (None,), 'password': '$2b$12$GM50VYr7Bu3Ve7JKcPGxN.ApmzXSDaYjU8/kQlW9OXK00ZMFa5oa'}, 'AwaL': {'name': ('',), 'password': '$2b$12$UtcGY0HUPzXtflFHXlbsee3UbekPXMSyPKLPUOVMBlT4qgAIe1BP6'}, 'NadiM': {'name': (None,), 'password': '$2b$12$n5DY/I.i4xVQxIgqsLbmLe8iSrn/9TLfnkCJ.7MbJdjpj8JO3etW'}}}

2nd --> print(credentials)

{'usernames':{'abdul': {'name': (None,), 'password': '$2b$12$GM50VYr7Bu3Ve7JKcPGxN.ApmzXSD0ajU8/kQlW9OXK00ZMFa5oa'}, 'awal': {'name': ('',), 'password': '$2b$12$UtcGY0HUPzXtflFHXlbsee3UbekPXSyPKLPUOVMBlT4qgAIe1BP6'}, 'nadim': {'name': (None,), 'password': '$2b$12$n5DY/I.i4xVQxIgqsLbmLe8iSrn9TJLfnkCJ.7MbJdjpj8JO3etW'}}}
  • 这个案例转换是故意的吗?验证类,还是缺少配置选项?

  • 如何确保在使用 stauth 时保留密钥的大小写。验证类?

  • 是否有任何最佳实践或已知的解决方案来处理 stauth 库中键的区分大小写问题?

Python StreamLit 区分大小写

评论


答: 暂无答案