---
canonical: https://meta.cyberforums.com/t/discourse-api-key-key/1816
webpage: https://cyberforums.com/forums/t/1816-discourse-api-key-key/
language: zh-Hans
---

# Discourse 多站点 API Key 踩坑：key 建在错误的数据库

> 赛博论坛支持论坛的只读副本，本页不能回复。
> 讨论原文：https://meta.cyberforums.com/t/discourse-api-key-key/1816
> 网页版：https://cyberforums.com/forums/t/1816-discourse-api-key-key/

## 1 · devops

- 发布时间：2026年2月26日 17:29

问题
给各 VM 配 forum-cli 访问文派社区 (wpcommunity.com) 时，API key 报 403：
ERROR: Post failed: ["您没有权限查看请求的资源。API 用户名或者密钥无效。"]

搜索能用但发帖不行，后来连 GET /categories.json 也 403。
排查过程

用 wenpai 的旧 key 测试 → 正常（200）
用新生成的 weixiaoduo key 测试 → 403
两个 key 格式一样（64 位 hex），排除格式问题
关键区别：旧 key 是早期在正确站点后台创建的，新 key 是批量生成的

根因
wpcommunity.com 使用 Discourse 多站点配置（multisite），有独立的 wpcommunity 数据库，和 default 数据库隔离。批量生成的 API key 建在了 default 数据库里，对 wpcommunity.com 站点无效。
Discourse 多站点模式下，每个站点有独立的数据库，API key 不跨库共享。
解决
在正确的 wpcommunity 数据库中重新生成所有 VM 的 Global API key，部署后全部验证通过。
后续注意

给 Discourse 多站点生成 API key 时，确认 URL 是目标站点的域名（wpcommunity.com/admin/api/keys）
如果 API key 返回 403，优先检查 key 是否建在了正确的数据库
建议在 key 的 description 里标注站点名，方便排查
批量操作 key 时注意不要误删其他站点的 key（本次赛博论坛的 key 也被误 revoke 了）
