简单的本地用户身份验证
miniauth的Python项目详细描述
miniauth是一个用于用户身份验证的小程序(和python库)。 具有方便的功能,使其易于在不同的上下文中使用,并与其他程序集成。
miniauth很简单,可移植,运行在python 2.7和python 3.4+版本上,并且 除了python标准库之外没有其他依赖项。
安装python包时,会提供miniauthcli entrypoint来管理和使用用户的本地数据库, 使用sqlite后端。
功能:
- 密码是以salt和hash方式存储的。哈希是每个记录可配置的,默认值是安全选择(sha512)
- 支持启用/禁用用户
- 凭据可以用不同的方式指定:命令行参数、标准输入、文件
- 当用作python库时,可以使用自定义存储,而不是默认的sqlite存储
下面是如何创建用户和密码,然后验证凭据:
$ miniauth save testuser Password: $ miniauth verify testuser Password: # exit codes report the result of verification
默认情况下,sqlite db文件是在名为miniauth.db的当前工作目录中创建的。 可以使用–storage选项配置此文件的路径。
验证凭据时,可以将密码指定为参数,或者 从标准输入或文件中读取。
$ miniauth --storage=user.db --verbose save testuser --password testpassword No DB detected on "user.db". Creating latest DB schema ... DB schema updated to version user.db on "1" created user testuser # read password from arguments $ miniauth --storage=user.db --verbose verify testuser testpassword user testuser credentials are correct # read password from a file $ cat file_with_password testpassword $ miniauth --storage=user.db --verbose verify testuser --password-file file_with_password user testuser credentials are correct # read username and password from a file $ cat file_with_creds testuser testpassword $ miniauth --storage=user.db --verbose verify --creds-file file_with_creds user testuser credentials are correct
在其他python应用程序中,可以使用miniauth作为库对用户进行身份验证。
>>>fromminiauth.authimportMiniAuth>>>auth=MiniAuth('users.db')>>>auth.create_user('user','password')True>>>auth.verify_user('user','password')True>>>auth.verify_user('user','invalidpassword')False
miniauth可以使用默认的基于sqlite的存储后端以外的存储后端。 存储类应该继承抽象存储并实现抽象方法。
>>>fromminiauth.storageimportAbstractStorage>>>classCustomStorage(AbstractStorage):...# implement abstract methods...pass>>>auth=MiniAuth('',CustomStorage())
安装
$ pip install miniauth
或从源安装:
$ python setup.py install
开发
源代码位于GitHub
在开发/测试环境中pytest,mock 需要,pycodestyle和mypy。
# on dev/test env
$ pip install -r requirements/dev.txt
许可证
miniauth是根据mit许可条款发布的一个开源项目。
麻省理工学院许可证(MIT)
版权所有(c)2018-2019 Farzad Ghanei
兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。