简体中文 | 繁體中文 | English | 日本語 | 한국어
一个现代化的渐进式 Web 应用(PWA),用于接收和管理来自 Cloudflare Worker 的邮箱验证码。
- 📬 实时获取验证码:从 Cloudflare Worker API 获取验证码
- 🔄 自动刷新:可配置自动刷新间隔(5秒、10秒、30秒、1分钟、2分钟、5分钟)
- 📋 一键复制:点击验证码即可复制到剪贴板
- 🗑️ 批量删除:通过删除 API 清空所有邮件
- 🌙 深色模式:自动支持深色模式
- 📱 PWA 支持:可安装为原生应用,支持离线使用
- 🌐 多语言支持:支持简体中文、繁体中文、英语、日语、韩语
- 🎨 现代化界面:使用 Tailwind CSS 打造简洁直观的界面
- Node.js 16+ 或更高版本
- npm 或 yarn 或 pnpm
# 进入项目目录
cd pwa-verification-app
# 安装依赖
npm install
# 或
yarn install
# 或
pnpm installnpm run dev应用将在 http://localhost:3000 启动。
npm run build构建产物将生成在 dist/ 目录。
npm run preview- 打开应用,切换到 设置 标签页
- 在 接码 API URL 输入框中填入你的 Cloudflare Worker API 地址
- 例如:
https://your-worker.workers.dev/api/codes
- 例如:
- 点击 测试连接 验证 URL 是否可用
- 配置会自动保存到浏览器本地存储
- 在设置页面的 删除 API 配置 区域
- 填入删除邮件的 API 地址
- 点击 测试连接 验证 URL 是否可用
- 配置后可使用"清空所有"功能
- 切换到 验证码 标签页
- 点击右上角的刷新按钮获取最新验证码
- 点击验证码数字或右侧的复制按钮可快速复制
- 点击右上角的垃圾桶图标可清空所有验证码(需配置删除 API)
- 在 Safari 浏览器中打开应用
- 点击底部的 分享 按钮
- 选择 添加到主屏幕
- 点击 添加
之后就可以像原生 APP 一样从主屏幕启动应用了!
- 在 Chrome 浏览器中打开应用
- 点击右上角的菜单按钮(三个点)
- 选择 添加到主屏幕 或 安装应用
- 点击 安装
我们提供了一个完整的 Cloudflare Worker 示例代码,包含:
- 邮件接收和验证码提取
- 获取验证码列表 API
- 删除所有邮件 API
📄 示例文件:cloudflare-worker-example.js
你的 Cloudflare Worker 应该返回以下格式之一的 JSON 数据:
{
"success": true,
"emails": [
{
"id": "uuid-1",
"from": "noreply@example.com",
"to": "user@example.com",
"subject": "验证码",
"content": "您的验证码是 123456",
"verificationCode": "123456",
"receivedAt": 1729411200000,
"hasVerificationCode": true
}
]
}{
"success": true,
"data": [
{
"id": "uuid-1",
"code": "123456",
"email": "user@example.com",
"time": "2025-10-20T10:30:00Z",
"source": "某服务"
}
],
"message": "获取成功"
}[
{
"code": "123456",
"email": "user@example.com",
"time": "2025-10-20T10:30:00Z"
}
]用于清空所有邮件的 API,应该接受 POST 请求并返回:
{
"success": true,
"message": "已清空所有邮件"
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
String | 否 | 唯一标识符(如不提供会自动生成) |
code |
String | 是 | 验证码内容 |
email |
String | 是 | 邮箱地址 |
time |
String/Number | 是 | 接收时间(ISO8601 格式或时间戳) |
source |
String | 否 | 来源信息 |
- 将代码推送到 GitHub
- 登录 Cloudflare Dashboard
- 进入 Pages → 创建项目
- 连接你的 GitHub 仓库
- 配置构建设置:
- 构建命令:
npm run build - 构建输出目录:
dist
- 构建命令:
- 点击 保存并部署
- 安装 Vercel CLI:
npm i -g vercel - 在项目目录运行:
vercel - 按照提示完成部署
- 将代码推送到 GitHub
- 登录 Netlify
- 点击 New site from Git
- 选择你的仓库
- 配置构建设置:
- 构建命令:
npm run build - 发布目录:
dist
- 构建命令:
- 点击 Deploy site
pwa-verification-app/
├── public/ # 静态资源
│ ├── manifest.json # PWA 配置
│ └── ICONS_README.md # 图标说明
├── src/
│ ├── components/ # React 组件
│ │ ├── CodesList.tsx # 验证码列表
│ │ ├── Settings.tsx # 设置页面
│ │ └── BottomNav.tsx # 底部导航
│ ├── services/ # 服务层
│ │ └── api.ts # API 请求
│ ├── types/ # TypeScript 类型
│ │ └── index.ts
│ ├── utils/ # 工具函数
│ │ ├── time.ts # 时间格式化
│ │ └── storage.ts # 本地存储
│ ├── App.tsx # 主应用
│ ├── main.tsx # 入口文件
│ └── index.css # 全局样式
├── index.html
├── package.json
├── vite.config.ts # Vite 配置
├── tailwind.config.js # Tailwind 配置
└── tsconfig.json # TypeScript 配置
- 框架:React 18
- 构建工具:Vite 5
- 语言:TypeScript
- 样式:Tailwind CSS
- PWA:vite-plugin-pwa
- 图标:Lucide React
在 tailwind.config.js 中修改:
theme: {
extend: {
colors: {
primary: {
500: '#3b82f6', // 改为你喜欢的颜色
}
}
}
}在 vite.config.ts 中修改 PWA 配置:
manifest: {
name: '你的应用名称',
short_name: '短名称',
}A: 请先在设置页面配置 Cloudflare Worker 的 URL 地址。
A: 请检查:
- URL 格式是否正确
- Worker 服务是否正常运行
- 网络连接是否正常
- API 返回格式是否符合规范
- 是否存在 CORS 跨域问题
A: 请确保:
- 使用 HTTPS 协议(或 localhost)
- 已正确配置 manifest.json
- 图标文件存在
- 使用支持 PWA 的浏览器(Safari、Chrome)
A: 请参考 public/ICONS_README.md 生成并添加图标文件。
- 支持推送通知
- 添加验证码搜索功能
- 支持多个 Worker URL 配置
- 添加验证码历史记录
- 支持自动刷新
- 添加数据导出功能
本项目仅供学习和参考使用。
如有问题或建议,欢迎提出 Issue。
开发环境:Node.js 16+ / Windows/Mac/Linux
浏览器支持:Chrome 90+, Safari 14+, Firefox 88+, Edge 90+
移动端支持:iOS 14+, Android 8+