makerspace工具/door authz/authn的框架

authbox的Python项目详细描述


软件

有关此代码如何工作的基本演练,请参见https://google.github.io/makerspace-auth/client/Walkthrough.html

先决条件:

  1. Python 2.7或3.6+
  2. evdev(Debian上的python evdev)
  3. RPi模块(或pip install fake-rpi用于测试)
  4. 确保您在“输入”组中才能使用evdev
  5. 如果你在Pi上,确保你在gpio组

开发:

  1. 最简单的方法是运行make setup,然后. .venv/bin/activate。在
  2. 您也可以使用tox运行测试,使用tox -p all
  3. 代码的格式是isort+black,运行make lint和/或make format 在发送请求之前。在

协议

虽然使用服务器是可选的(您可以使用shell脚本执行所有操作),但是我们 使用一个简单的基于HTTP的协议,该协议旨在易于适应现有的 系统。见https://google.github.io/makerspace-auth/server/Protocol.html

QA示例

当按下按钮时,它只会闪烁一盏灯。我们用这个来运行QA 在authboards上组装后,是一个非常简单的事件循环示例 作品。在

双按钮示例

我们确定了两个按钮(“开”和“关”,基本上)是最小可行的 控件,这是我们在Google使用的版本。如果你在找 一个好的起点,从这里开始。在

基本工作流程是:

  1. 扫描徽章
  2. 按“开”。工具将通电。在
  3. 警告计时器开始蜂鸣。如果你再按一次,你就有更多的时间。在
  4. 否则,工具断电。在

您应该将此文件复制(或符号链接)到~/.authboxrc并进行编辑以符合要求 你的密码。默认值适用于RDR-6081AKU(击键)和 pi-hat-1v1.0硬件触发两个onbarod继电器以启用设备。在

此示例现成地将授权用户存储在本地文件中 (请参见sample_auth_check.sh)但您可能希望它查询您现有的 用户/培训数据库。如果你想使用相同的协议,那就是 记录于 https://google.github.io/makerspace-auth/server/Protocol.html如果你使用 curl,记住'-f'。在

启动时启动

在所有发行版上工作的最简单方法是cron作业:

# Visually
pi$ crontab -e
(add the following line at the end, save, and apply)
@reboot cd /path/to/software; python two_button.py

# Through script
pi$ (crontab -l; echo "@reboot cd /path/to/software; python two_button.py") | crontab -

如果您的发行版使用systemd,您还可以制作一个systemd单元来运行它。在

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

推荐PyPI第三方库


热门话题
java Apache Flink外部Jar   创建和强制转换对象数组时发生java错误   Java,添加数组   具有相同包结构和类的java JAR   java Jenkins未能构建Maven项目   java为什么一个forloop比另一个更快,尽管它们做的“一样”?   servlets在将“/”站点迁移到Java EE包时处理contextpath引用   无法解析java MavReplugin:2.21或其某个依赖项   泛型如何编写比较器来泛化Java中的两种类型的对象?   java Android Emulator未在netbeans上加载   多线程Java使用线程对数组中的数字求和:在同步块中使用新变量作为锁:差异   java如何在JSP/servlet中设置<input>标记的值?