diff --git a/README.md b/README.md index 2e75b0d..e1a0565 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ WmailHub/ - **Redirect URL**:`https://wmailhub.adx9.com/api/oauth/cloudflare/callback` - **Client URI**:`https://wmailhub.adx9.com`(必须是 Console 站点域名),并按提示加 TXT 记录完成域名校验 - **Promote to public**:私有 App 无法被授权 - - **Scopes**(`zone.read` / `workers-scripts.write` / `email-routing-rule.write` / `account-settings.read`):**点号分隔**,冒号写法(`account:read`)是 wrangler 的第一方简写,第三方 client 会被拒;缺 `account-settings.read` 也能接入(自动从域名反推账号) + - **Scopes**(`zone.read` / `workers-scripts.write` / `email-routing-rule.write`):**点号分隔**,冒号写法(`account:read`)是 wrangler 的第一方简写,第三方 client 会被拒;这三项就够,账号 id 与账号名随 `GET /zones` 的每个 zone 一起返回,不需要账号级权限 配好后到设置页点「检测授权配置」确认,再点账号页「添加账号」。Client ID / Secret 有两个配置位置,任一即可: - **推荐**:部署后登录 Console → 设置 →「Cloudflare 接入」填写,Secret 加密入库,改完立即生效,以后换 client 也不用重新部署; diff --git a/console/frontend/src/api.ts b/console/frontend/src/api.ts index cc03c51..f845357 100644 --- a/console/frontend/src/api.ts +++ b/console/frontend/src/api.ts @@ -337,10 +337,6 @@ export interface OAuthPreflightResult { /** 本应用默认需要的 scope(点号分隔)——与后端 CF_OAUTH_SCOPES_DEFAULT 保持一致 */ export const CF_OAUTH_SCOPES_DEFAULT = "zone.read workers-scripts.write email-routing-rule.write"; -/** 可选:勾了 Account Settings Read 才能显示真实账号名,否则用第一个域名代替 */ -export const CF_OAUTH_SCOPES_WITH_ACCOUNT_NAME = - "account-settings.read zone.read workers-scripts.write email-routing-rule.write"; - /** 授权配置自检:探测 Cloudflare 授权端点是否接受当前配置(不产生授权) */ export const oauthPreflight = () => api("/api/oauth/cloudflare/preflight"); diff --git a/console/frontend/src/components/SettingsModal.tsx b/console/frontend/src/components/SettingsModal.tsx index bfac1e9..216a703 100644 --- a/console/frontend/src/components/SettingsModal.tsx +++ b/console/frontend/src/components/SettingsModal.tsx @@ -38,7 +38,6 @@ import { oauthPreflight, putSettings, CF_OAUTH_SCOPES_DEFAULT, - CF_OAUTH_SCOPES_WITH_ACCOUNT_NAME, type OAuthPreflightResult, type SettingsInfo, } from "../api.ts"; @@ -391,8 +390,7 @@ function CloudflareTab({ info, onSaved }: { info: SettingsInfo; onSaved: () => v <> Cloudflare 的 OAuth scope 是点号分隔(zone.read),冒号写法(zone:read)是 wrangler 的 第一方简写,第三方客户端会被判 invalid_scope。必须与 OAuth App 里勾选的权限一致;检测按钮会 - 直接告诉你哪些已授权、哪些还要补勾。account-settings.read 是可选的:勾了才显示真实账号名, - 不勾则用第一个域名代替,不影响接入。 + 直接告诉你哪些已授权、哪些还要补勾。三项就够:账号名随 zone 一起返回,不需要账号级权限。 } > @@ -449,15 +447,6 @@ function CloudflareTab({ info, onSaved }: { info: SettingsInfo; onSaved: () => v > 填入最小 scope - {check.scopes.allowed.length > 0 && (