已發在github
https://github.com/raptorz/userga
以下直接取自README.md
一個可以不用密碼的用戶系統。默認只需要輸入email即可註冊或登錄,如果需要密碼,可以使用Google Authenticator掃描郵件中的二維碼,使用GA生成的一次性密碼登錄。
基本功能
- 註冊:輸入email即完成註冊或登錄。提示:本網站可以不用設置密碼,直接使用email登錄,如果需要設置密碼,請收取郵件,並按郵件中的指示操作。
- 登錄:未設置密碼:輸入email直接登錄。已設置密碼:輸入email後彈出密碼提示,需要輸入GA生成的一次性密碼登錄。
- 設置密碼:郵件內容:祝賀您成功註冊本網站,您現在可以直接使用email登錄網站
安裝
cd /usr/ports/databases/py-sqlite3 # for FreeBSD
sudo make PYTHON_VERSION=python3.4 install # for FreeBSD
pip install -r requirements.txt
python userga.py
配置
配置文件爲當前目錄下的config.json,內容爲:
{
"db_url": "sqlite:///userga.dat",
"web_path": "userga",
"web_addr": "127.0.0.1",
"web_port": 8001,
"debug": True,
}
依賴
- python 3.4+(其它版本未測試)
- bottle, mako, beaker, sqlalchemy, bottle-sqlalchemy
- bottle-plugins
- 可選webserver前端(Apache/Nginx…)
貢獻
程序代碼中包含以下第三方前端庫:
- jquery
- bootstrap
安全性
- 安全性不高:
- secret目前用的是base64編碼隨機字符後取10位,密鑰空間爲64^10
- OTP code只有6位數字,在30秒內試完其實是可能的
- 所以必須配合重試限制,目前是簡單地限制30秒內只允許嘗試一次(重置密碼是5分鐘)