测试OAuth2

This commit is contained in:
linghutianhao
2026-08-14 17:16:25 +08:00
parent 8b6b8e7ab7
commit 5c4a471280
5 changed files with 147 additions and 24 deletions
+13 -13
View File
@@ -101,7 +101,7 @@ sidebar_position: 7
还得新旧都测
/houseManage/housePrivate!showEvaluateEstimateLogTab.action?cbsHouseCode=547114825&buildingHouseId=75906969
/houseManage/housePrivate{'!'}showEvaluateEstimateLogTab.action?cbsHouseCode=547114825&buildingHouseId=75906969
@@ -185,7 +185,7 @@ sidebar_position: 7
3. 点击后触发招租失败定时任务处理 , 排除a条件 , 筛选合同是自己 -- 旧方法 √
4. “操作成功,委托合同实际结束日已变更。” , “操作失败,失败原因为\{获取失败原因,如果为多个使用;分开}” --新action方法
4. “操作成功,委托合同实际结束日已变更。” , “操作失败,失败原因为[获取失败原因,如果为多个使用;分开]” --新action方法
5. 部分城市告知cbs -- 北京有,杭州有,太原有,南京苏州天津有 郑州无,直营无?
@@ -195,23 +195,23 @@ sidebar_position: 7
太原:《相寓资产管理服务合同》补充协议 {收房维护人 , 租赁区副总监}
太原:《相寓资产管理服务合同》补充协议 [收房维护人 , 租赁区副总监]
南京:《南京相寓资产管理服务合同》补充协议 {相寓主管 , 相寓区域经理}
南京:《南京相寓资产管理服务合同》补充协议 [相寓主管 , 相寓区域经理]
苏州:《苏州相寓资产管理服务合同》补充协议 {相寓主管 , 相寓经理}
苏州:《苏州相寓资产管理服务合同》补充协议 [相寓主管 , 相寓经理]
天津:《天津相寓资产管理服务合同》补充协议 {相寓主管 , 相寓区域经理}
天津:《天津相寓资产管理服务合同》补充协议 [相寓主管 , 相寓区域经理]
郑州:《郑州相寓资产管理服务合同》补充协议 {经纪人 , 店经理}
郑州:《郑州相寓资产管理服务合同》补充协议 [经纪人 , 店经理]
北京:《北京相寓资产管理服务合同》补充协议 {经纪人 , 商圈经理}
北京:《北京相寓资产管理服务合同》补充协议 [经纪人 , 商圈经理]
杭州:《杭州相寓资产管理服务合同》补充协议 {租赁经纪人 , 业务主任}
杭州:《杭州相寓资产管理服务合同》补充协议 [租赁经纪人 , 业务主任]
武汉直营:《武汉相寓资产管理服务合同》补充协议 {综合管家 , 业务经理}
武汉直营:《武汉相寓资产管理服务合同》补充协议 [综合管家 , 业务经理]
成都直营:《成都相寓资产管理服务合同》补充协议 {资源经理(原经纪人) , 区域经理(原店经理)}
成都直营:《成都相寓资产管理服务合同》补充协议 [资源经理(原经纪人) , 区域经理(原店经理)]
@@ -248,9 +248,9 @@ wtBlackApplyPage.jsp 加入/解除 申请(work只有申请) HouseInfoAction.comm
屏蔽类型 1:房源;2:楼栋;3:小区 4承租
- [x] 加入黑名单审批流变更
- [x] 看生产页面分配给谁了 /basicsdate/houseInfo!listContractBlackInfo.action
- [x] 看生产页面分配给谁了 /basicsdate/houseInfo{'!'}listContractBlackInfo.action
- [x] 列表数据展示范围 : 要开给管家和经理 , 可以查看自己提交的数据
- [x] 看申请页权限分配给谁了 /basicsdate/houseInfo!wtBlackApplyPage.action?operateKbn=I
- [x] 看申请页权限分配给谁了 /basicsdate/houseInfo{'!'}wtBlackApplyPage.action?operateKbn=I
- [x] 申请页面 管家只能屏蔽房源 , 经理只能屏蔽小区和楼栋
- [x] 申请校验 管家时 判断是否在管辖范围内
+114
View File
@@ -127,6 +127,120 @@ GITEE_CLIENT_ID=xxx GITEE_CLIENT_SECRET=xxx node server.js
### sveltia-cms + gitea(当前使用)
Sveltia CMS 直接对接 Gitea:浏览器登录 Gitea(OAuth2 隐式授权),编辑内容保存后直接提交到 Gitea 仓库。
```
浏览器 → Sveltia CMS UI (localhost:3000/admin) → Gitea API (115.190.192.69:3011)
→ OAuth 登录 → 直接 commit/push
```
**配置(static/admin/config.yaml**
```yaml
backend:
name: gitea
repo: admin/docusaurus
branch: main
base_url: http://115.190.192.69:3011
auth_endpoint: /login/oauth/authorize
auth_scope: read_user,write:repository
```
**Gitea 侧要做两件事(一次性):**
1. 创建 OAuth2 应用
- 登录 Gitea → 头像 → 设置 → 应用 → 管理 OAuth2 应用程序 → 创建新应用
- 应用名称:`Sveltia CMS`
- 重定向 URI`http://localhost:3000/admin/`(必须与访问 CMS 的地址完全一致,含结尾斜杠;以后换域名/端口要回来改)
- 创建后复制 **Client ID**,填到 `static/admin/config.yaml``backend.client_id`(去掉注释)(隐式授权不需要 Secret)
2. 开启 CORS(改 Gitea 服务器上的 `app.ini`,然后重启 Gitea
```ini
[cors]
ENABLED = true
SCHEME = http
ALLOW_DOMAIN = localhost:3000
ALLOW_SUBDOMAIN = false
METHODS = GET,POST,PUT,PATCH,DELETE,OPTIONS
MAX_AGE = 600
ALLOW_CREDENTIALS = false
```
> app.ini 位置:Windows 一般在 `C:\Program Files\Gitea\custom\conf\app.ini`Linux 在 `/etc/gitea/app.ini`;也可以在 Gitea 后台「站点管理 → 配置」里看到实际路径。
> 若从局域网其他电脑访问,把 `ALLOW_DOMAIN` 改成对应主机名/IP。
**启动与访问**
```bash
npm start
# 打开 http://localhost:3000/admin/index.html (若 /admin/ 被 Docusaurus 路由拦截就用这个)
```
点 Login with Gitea → 授权后即可编辑,保存即提交到 `admin/docusaurus` 的 `main` 分支。
**排错**
- 登录跳转后报 `invalid client` / 授权页打不开:`client_id` 没填或填错 → 检查 `backend.client_id`
- 登录成功但列表/保存报 CORS 错误(控制台 `Access-Control-Allow-Origin`):Gitea 的 `[cors]` 没开或 `ALLOW_DOMAIN` 没包含 `localhost:3000`,或 Gitea 没重启
- 重定向 URI 不匹配(Gitea 报 `invalid redirect_uri`):Gitea 里 OAuth 应用的重定向 URI 必须与浏览器地址栏实际访问的 CMS 地址逐字符一致
- 分支不对:确认 `branch: main` 与仓库默认分支一致
### 部署到服务器(115.190.192.69,站点 3000 端口 / Gitea 3011 端口)
站点和 Gitea 放同一台服务器,浏览器访问 `http://115.190.192.69:3000/admin/`CMS 直连 Gitea3011)。
**1. 构建**
```bash
npm run build # 产物在 build/
```
**2. 把代码弄到服务器(推荐源码方式,便于后续自动重建)**
```bash
# 服务器上(需装 node ≥ 20)
git clone http://115.190.192.69:3011/admin/docusaurus.git
cd docusaurus
npm install
```
**3. 启动站点(3000 端口)**
```bash
npm run build && npm run serve -- --host 0.0.0.0 --port 3000
# 或用 nginx/caddy 把 build/ 目录静态托管在 3000 端口
# 防火墙放行 3000 端口
```
**4. Gitea 侧(一次性,改完重启 Gitea)**
- OAuth 应用的重定向 URI 加一行:`http://115.190.192.69:3000/admin/`(本地调试的 `http://localhost:3000/admin/` 可保留,多行添加)
- `app.ini` 的 CORS
```ini
[cors]
ENABLED = true
SCHEME = http
ALLOW_DOMAIN = 115.190.192.69:3000
ALLOW_SUBDOMAIN = false
METHODS = GET,POST,PUT,PATCH,DELETE,OPTIONS
MAX_AGE = 600
ALLOW_CREDENTIALS = false
```
**5. 访问 `http://115.190.192.69:3000/admin/` → Login with Gitea**
**内容更新闭环(关键)**
CMS 里保存 = 直接 commit 到 Gitea 仓库,但静态站点不会自动更新,需要服务器重建:
- **方案 A(推荐)**Gitea 建 Push WebhookURL 指向服务器上的小脚本,如 `http://115.190.192.69:8080/hook`),脚本收到推送后执行 `git pull && npm run build`,再重启/重载静态服务
- **方案 B(手动)**:改完内容后 SSH 上服务器 `git pull && npm run build`
- **方案 C(省事)**:服务器定时任务每分钟 `git pull`,有变更才 build
### tina-cms(卡)
https://tina.io/docs/reference/config