Add password-protected access flow
This commit is contained in:
46
README.md
46
README.md
@@ -11,6 +11,7 @@
|
||||
- 支持拉取多文件夹邮件,不限于 `INBOX`
|
||||
- 支持按需补拉单封邮件正文,避免全量同步过慢
|
||||
- 支持批量导入导出邮箱信息
|
||||
- 支持访问密码保护,未输入密码无法进入功能页面
|
||||
- 提供 API 用于发邮件、获取邮件列表、获取最新一封邮件
|
||||
|
||||
## 技术栈
|
||||
@@ -57,8 +58,15 @@ cp .env.example .env
|
||||
```env
|
||||
PORT=3000
|
||||
DB_PATH=./mail.db
|
||||
APP_PASSWORD=change-this-password
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `APP_PASSWORD` 用于控制页面和 API 访问
|
||||
- 设置后,必须先在登录页输入正确密码才能进入系统
|
||||
- 如果留空,则不启用密码保护
|
||||
|
||||
### 3. 启动服务
|
||||
|
||||
```bash
|
||||
@@ -79,6 +87,12 @@ cp .env.example .env
|
||||
|
||||
如果你不需要额外环境变量,默认配置即可。
|
||||
|
||||
如果启用访问密码,请在 `.env` 中设置:
|
||||
|
||||
```env
|
||||
APP_PASSWORD=your-strong-password
|
||||
```
|
||||
|
||||
### 2. 构建并启动
|
||||
|
||||
```bash
|
||||
@@ -124,6 +138,14 @@ Docker Compose 默认使用命名卷 `mail-sr-data` 持久化 SQLite 数据库
|
||||
|
||||
## Web 使用说明
|
||||
|
||||
### 0. 登录保护
|
||||
|
||||
如果 `.env` 中设置了 `APP_PASSWORD`,打开首页后会先进入登录页。
|
||||
|
||||
- 输入正确密码后,服务端会写入 `HttpOnly Cookie`
|
||||
- 后续页面请求会基于该 Cookie 校验访问权限
|
||||
- 点击左下角退出按钮可清除登录状态
|
||||
|
||||
### 1. 渠道管理
|
||||
|
||||
在设置弹窗中可以新增渠道,填写:
|
||||
@@ -185,12 +207,36 @@ QQ邮箱----demo@qq.com----abcd1234
|
||||
|
||||
## API 文档
|
||||
|
||||
除 `健康检查`、`登录状态`、`登录接口` 外,其余 API 在启用 `APP_PASSWORD` 时都需要先登录。
|
||||
|
||||
### 健康检查
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000/api/health
|
||||
```
|
||||
|
||||
### 登录状态
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000/api/auth/status
|
||||
```
|
||||
|
||||
### 登录
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3000/api/auth/login \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"password": "your-strong-password"
|
||||
}'
|
||||
```
|
||||
|
||||
### 退出登录
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3000/api/auth/logout
|
||||
```
|
||||
|
||||
### 查询渠道
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user