为什么选择 timetagger
树莓派 3B 可能只带的动这个应用,更新版本的可能跑得动其他的。像 kimai 等可能跑不起来。
为什么要定制
timetagger 没有提供登录功能,或者说登录功能太简陋,于是需要自行定制。
如何定制
定制界面
把官方自带的界面 copy 到自己 pages 目录下。
修改 login.md,所有的登录请求都是到这个界面下完成的,所以需要修改它,给它增加登录表单,具体细节看源码。
totp 工具
import pyotp
username = "your_username"
gtoken = pyotp.random_base32(64)
data = pyotp.totp.TOTP(gtoken).provisioning_uri(username, issuer_name="MyTimeTagger")
print("gtoken", gtoken)
print("qrcode data", data)
生成代码参考python 实现 google authenticator 认证 - Pythia 丶陌乐。
其中 gtoken 就是 totp 密钥,在 run.py 中用到。
qrcode data 是用来生成二维码的内容,随便找个工具,用这个内容生成二维码,然后使用 authy 这样的工具扫码即可。
运行代码
修改静态界面资源到自己的 pages 目录。
引入 pyotp 包。
增加一个用户字典,保存用户名、密码、totp 密钥信息。
修改 webtoken_for_localhost 函数。增加用户登录验证。
部署
timetagger 数据默认放在用户目录下的 _timetagger 目录下。
可以使用 ln 命令引到其他目录下。
小结
完整代码https://github.com/gomi1992/timetagger_app
这不是 totp 的正确使用方式。
应该先验证用户名密码,再给界面去输入 totp。
但是目前登录逻辑上还是跟这个流程保持一致。
timetagger 的简单定制到此为止。