banner
AcoFork

AcoFork

LOVETOLOVE

基於密碼+TOTP保護的雲端點名表

寫在前面:#

我實在想不明白一個點名表為什麼要用密碼保護,讓用戶輸入名單不就行了,不建議看本篇,太降智了,參見:本地點名表,基於 HTML,可作為 APK 安裝

這是什麼#

這是一個托管在 Cloudflare Workers 的雲端點名表,對於某些職位非常有用。點名表顯示了當前時間,點擊一個名字後會將它劃除並置底,同時也有全選、取消全選和切換主題

登錄頁:

image

點名表頁:

9c9b7facdd8878704b8903a53e83bb27

50efb0a23afd3324791ef2e390f4dce7

為什麼要做這個奇怪的項目?#

因為筆者發現市面上大多數 TODO 軟體都無法實現類似點名表的效果,一怒之下便拜師 AI,歷經 20 天做出這坨史(代碼確實是依托
但是能用,後面的計劃是解耦合(比如將 HTML 使用 KV 變量存儲)

正式開始#

  1. 創建 Cloudflare Workers並粘貼代碼,GIthub 倉庫為:https://github.com/afoim/name_cf_workers

  2. 添加環境變量

  • 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)

image

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。