简单的本地用户身份验证

miniauth的Python项目详细描述


https://travis-ci.org/farzadghanei/miniauth.svg?branch=master

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

在开发/测试环境中pytestmock 需要,pycodestylemypy

# on dev/test env
$ pip install -r requirements/dev.txt

测试

Tox最方便用它运行测试,因为它处理虚拟机

$ tox

或者当安装了开发依赖项(最好是虚拟环境)时, 可以通过直接调用pytest来运行测试。

$ pytest

许可证

miniauth是根据mit许可条款发布的一个开源项目。

麻省理工学院许可证(MIT)

版权所有(c)2018-2019 Farzad Ghanei

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的拷贝或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?