Skip to content

cyb233/cf-auth

Repository files navigation

Auth Worker

本项目是基于 Cloudflare Workers 的简易认证中间件,支持密码登录和 Cookie 认证,适用于需要简单保护的服务。

功能

  • 密码登录,支持多域名配置不同密码
  • 登录后通过加密 Cookie 维持会话
  • 未登录自动跳转到登录页
  • 支持 Cloudflare Workers 智能部署

目录结构

  • src/index.ts:主 Worker 逻辑
  • public/login.html:登录页面
  • wrangler.jsonc:Cloudflare Worker 配置

开发

  1. 安装依赖
    npm install
  2. 启动本地开发服务
    npm run dev
  3. 访问 http://localhost:8787/ 查看效果

配置

  • wrangler.jsoncvars 字段中为每个域名配置密码和可选的白名单路径,例如:
    "vars": {
      "ENCRYPTION_KEY": "your-encryption-key",
      "COOKIE_MAX_AGE": 3600,
      "REFRESH": false,
      "example.com": {
        "PASSWORD": "your-password",
        "WHITE_LIST": ["^/public", "^.*/static"],
        "ENCRYPTION_KEY": "your-another-key",
        "COOKIE_MAX_AGE": 60,
        "REFRESH": true
      }
    }

全局配置项

配置项 类型 作用说明 是否必填
ENCRYPTION_KEY string 用于加解密 Cookie,建议设置为 128 bit,加密方式为 AES,注意不要泄露密钥
COOKIE_MAX_AGE number Cookie 的最大有效期(秒),用于控制登录会话的持续时间
REFRESH boolean 是否每次访问自动续期 Cookie(默认为 false)

域名配置项

配置项 类型 作用说明 是否必填
PASSWORD string 指定该域名的登录密码
WHITE_LIST string[] 路径的白名单数组(正则表达式语法),若匹配则无需认证
ENCRYPTION_KEY string 覆盖全局的加密密钥
COOKIE_MAX_AGE number 覆盖全局的 Cookie 有效期
REFRESH boolean 覆盖全局的自动续期设置
  • 全局配置可被域名下的同名配置覆盖,优先级:域名 > 全局。

部署

参考

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published