寫在前面:#
我實在想不明白一個點名表為什麼要用密碼保護,讓用戶輸入名單不就行了,不建議看本篇,太降智了,參見:本地點名表,基於 HTML,可作為 APK 安裝
這是什麼#
這是一個托管在 Cloudflare Workers 的雲端點名表,對於某些職位非常有用。點名表顯示了當前時間,點擊一個名字後會將它劃除並置底,同時也有全選、取消全選和切換主題
登錄頁:
點名表頁:
為什麼要做這個奇怪的項目?#
因為筆者發現市面上大多數 TODO 軟體都無法實現類似點名表的效果,一怒之下便拜師 AI,歷經 20 天做出這坨史(代碼確實是依托
但是能用,後面的計劃是解耦合(比如將 HTML 使用 KV 變量存儲)
正式開始#
-
創建 Cloudflare Workers並粘貼代碼,GIthub 倉庫為:https://github.com/afoim/name_cf_workers
-
添加環境變量
- NAMES 為名單,一行一個
- PASSWORD 為你設置的密碼
- TOTP_SECRET 為你設置的 TOTP 密鑰,可以通過以下 Python 代碼生成
import pyotp
import qrcode
def generate_totp(secret, account_name, issuer_name):
# 生成一個TOTP對象
totp = pyotp.TOTP(secret)
# 打印當前的TOTP值
print(f"當前 TOTP:{totp.now()}")
# 生成適合二維碼掃描的URI (適用於Google Authenticator等)
uri = totp.provisioning_uri(name=account_name, issuer_name=issuer_name)
print(f"TOTP URI: {uri}")
# 生成二維碼
img = qrcode.make(uri)
img.show() # 顯示二維碼
if __name__ == "__main__":
# 自定義名稱、賬號和密鑰
account_name = input("請輸入賬號名稱: ")
issuer_name = input("請輸入應用名稱: ")
# 生成一個隨機密鑰,或者你可以使用自己預定義的密鑰
secret = pyotp.random_base32()
print(f"密鑰: {secret}")
generate_totp(secret, account_name, issuer_name)