一个用于创客空间工具/门授权/身份验证的框架
项目描述
软件
有关此代码如何工作的基本演练,请参阅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格式化,发送pull请求之前请运行
make lint
和/或make format
。
协议
虽然使用服务器是可选的(您可以使用shell脚本完成所有操作),但我们使用一个简单的基于HTTP的协议,该协议旨在易于适应现有系统。请参阅https://google.github.io/makerspace-auth/server/Protocol.html
QA示例
当按钮被按下时,这只会闪烁一盏灯。我们使用它来对authboards进行组装后的质量保证,这是一个事件循环如何工作的非常简单的示例。
双按钮示例
我们确定两个按钮(“开启”和“关闭”,基本上)是可行的最小控制,这是我们Google使用的版本。如果您在寻找一个好的起点,从这里开始。
基本工作流程是
- 扫描徽章
- 按下“开启”。工具将启动。
- 警告计时器开始蜂鸣。如果您再次按下“开启”,您将获得更多时间。
- 否则,工具将关闭。
您应将此文件(或符号链接)复制(或符号链接)到~/.authboxrc,并根据您的PIN号码进行编辑。默认值适用于RDR-6081AKU(按键)和pi-hat-1 v1.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单元来运行它。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。