不用密碼的用戶系統實現

已發在github

https://github.com/raptorz/userga

以下直接取自README.md

一個可以不用密碼的用戶系統。默認只需要輸入email即可註冊或登錄,如果需要密碼,可以使用Google Authenticator掃描郵件中的二維碼,使用GA生成的一次性密碼登錄。

基本功能

  1. 註冊:輸入email即完成註冊或登錄。提示:本網站可以不用設置密碼,直接使用email登錄,如果需要設置密碼,請收取郵件,並按郵件中的指示操作。
  2. 登錄:未設置密碼:輸入email直接登錄。已設置密碼:輸入email後彈出密碼提示,需要輸入GA生成的一次性密碼登錄。
  3. 設置密碼:郵件內容:祝賀您成功註冊本網站,您現在可以直接使用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分鐘)
發佈了266 篇原創文章 · 獲贊 19 · 訪問量 187萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章