makerspace工具/door authz/authn的框架
authbox的Python项目详细描述
软件
有关此代码如何工作的基本演练,请参见https://google.github.io/makerspace-auth/client/Walkthrough.html
先决条件:
- Python 2.7或3.6+
evdev
(Debian上的python evdev)RPi
模块(或pip install fake-rpi
用于测试)- 确保您在“输入”组中才能使用evdev
- 如果你在Pi上,确保你在gpio组
开发:
- 最简单的方法是运行
make setup
,然后. .venv/bin/activate
。在 - 您也可以使用tox运行测试,使用
tox -p all
- 代码的格式是isort+black,运行
make lint
和/或make format
在发送请求之前。在
协议
虽然使用服务器是可选的(您可以使用shell脚本执行所有操作),但是我们 使用一个简单的基于HTTP的协议,该协议旨在易于适应现有的 系统。见https://google.github.io/makerspace-auth/server/Protocol.html
QA示例
当按下按钮时,它只会闪烁一盏灯。我们用这个来运行QA 在authboards上组装后,是一个非常简单的事件循环示例 作品。在
双按钮示例
我们确定了两个按钮(“开”和“关”,基本上)是最小可行的 控件,这是我们在Google使用的版本。如果你在找 一个好的起点,从这里开始。在
基本工作流程是:
- 扫描徽章
- 按“开”。工具将通电。在
- 警告计时器开始蜂鸣。如果你再按一次,你就有更多的时间。在
- 否则,工具断电。在
您应该将此文件复制(或符号链接)到~/.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单元来运行它。在
- 项目
标签: