多平台广告账户 Token 自动管理服务。集中托管百度营销、小红书、360、巨量引擎等平台的 accessToken / refreshToken,提供:
/auth/{platform} 回调入口,免手写对接代码/get 一键导出全部数据,方便其它服务集成| key | 平台 | 授权入口 |
|---|---|---|
baidu | 百度营销 | /auth/baidu |
xiaohongshu | 小红书 | /auth/xiaohongshu |
360 | 360 | /auth/qihoo |
juliang | 巨量引擎 | /auth/juliang |
新增平台只需在 app/platforms/ 下实现一个类并注册即可扩展。
| Tag | 说明 |
|---|---|
latest | 最新稳定版 |
x.y.z | 具体版本号 |
amd64 / arm64 | 对应 CPU 架构 |
docker run -d \
--name AuthMan \
-p 8000:8000 \
-v $(pwd)/data:/app/data \
-e TZ=Asia/Shanghai \
-e ADMIN_SECRET=change-me-please \
gitree/AuthMan:beta
访问:
http://localhost:8000/adminhttp://localhost:8000/gethttp://localhost:8000/auth/baiduversion: "3.9"
services:
AuthMan:
image: gitree/AuthMan:beta
container_name: AuthMan
restart: unless-stopped
ports:
- "8000:8000"
environment:
TZ: Asia/Shanghai
ADMIN_SECRET: change-me-please
volumes:
- ./data:/app/data
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8000/get"]
interval: 60s
timeout: 5s
retries: 3
start_period: 15s
docker compose up -d
| 变量 | 默认值 | 说明 |
|---|---|---|
TZ | UTC | 容器时区,建议 Asia/Shanghai |
ADMIN_SECRET | please-change-me | SQLAdmin 会话签名用,务必修改 |
DB_PATH | /app/data/tokens.db | SQLite 数据库路径 |
CHECK_INTERVAL_MINUTES | 10 | 巡检周期(分钟) |
REFRESH_AHEAD_HOURS | 8 | 到期前多少小时主动刷新 |
PORT | 8000 | 监听端口 |
容器内数据库固定位于 /app/data/tokens.db,必须挂载卷,否则重启会丢数据:
-v ./data:/app/data
备份只需拷贝这个目录:
cp -r ./data ./data-backup-$(date +%F)
ADMIN_SECRET 换成随机值docker compose up -dREPLACE_WITH_BAIDU_CLIENT_ID),需通过环境变量或挂载自定义 app/platforms/ 目录覆盖http://your-host:8000/auth/baiduaccessToken,同时后台 /admin 能看到记录| 方法 | 路径 | 说明 |
|---|---|---|
GET | /get | 返回全部 token 数据(JSON) |
GET | /auth/{platform} | 发起授权(无 code 时跳转平台授权页) |
GET | /auth/{platform}?code=xxx | 平台 OAuth 回调,换 token 并入库 |
POST | /refresh/{id} | 手动刷新指定记录 |
GET | /check/now | 立刻触发一次巡检(调试用) |
GET | /admin | 可视化后台 |
/get 返回示例{
"count": 2,
"data": [
{
"id": 1,
"platform": "baidu",
"userId": "630152",
"userName": "示例账户",
"appId": "b25f6761...",
"accessToken": "eyJhbGciOi...",
"refreshToken": "eyJhbGciOi...",
"accessTokenExpireTime": "2026-11-13 15:49:19",
"refreshTokenExpireTime": "2026-12-13 15:49:19",
"createAt": "2026-10-14 10:00:00",
"updateAt": "2026-10-14 10:00:00"
}
]
}
时间字段统一为北京时间(UTC+8),直接可读。
容器日志通过 stdout 输出:
docker logs -f AuthMan
关键日志样例:
========== 开始巡检 token ==========
id=1 将于 2026-11-13 15:49:19 到期,提前刷新
✅ 刷新成功 id=1 platform=baidu
========== 巡检完成:2 条,刷新 1 条 ==========
建议接入日志收集(Loki / ELK / CloudWatch)长期保留,排查问题更方便。
设置 TZ=Asia/Shanghai 环境变量并重启即可。数据库内存储的时间为北京时间字符串,与容器时区无关。
检查:
调度器已启动docker logs AuthMan | grep 巡检/check/now 看是否有异常回调地址必须指向 可公网访问 的 URL,且路径为 /auth/{platform}。例如:
https://your-domain.com/auth/baidu
localhost 只适用于本机浏览器测试,平台服务器无法回调 localhost。
docker compose pull
docker compose up -d
数据库结构如果发生变化,升级前请先备份 data/ 目录。
可以。tokens.db 是标准 SQLite 文件,用任意 SQLite 客户端都能打开:
sqlite3 ./data/tokens.db "SELECT platform, userId, userName FROM Tokens;"
8000 端口signature 验签逻辑需要按官方文档补齐https://github.com/gitree/AuthManhttps://github.com/gitree/AuthMan/issues欢迎提交 PR 支持更多广告平台(巨量千川、腾讯广告、快手磁力等)。
MIT
Content type
Image
Digest
sha256:50f6d550b…
Size
80.7 MB
Last updated
about 4 hours ago
docker pull gitree/authman:beta