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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。