测试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条件 , 筛选合同是自己 -- 旧方法 √ 3. 点击后触发招租失败定时任务处理 , 排除a条件 , 筛选合同是自己 -- 旧方法 √
4. “操作成功,委托合同实际结束日已变更。” , “操作失败,失败原因为\{获取失败原因,如果为多个使用;分开}” --新action方法 4. “操作成功,委托合同实际结束日已变更。” , “操作失败,失败原因为[获取失败原因,如果为多个使用;分开]” --新action方法
5. 部分城市告知cbs -- 北京有,杭州有,太原有,南京苏州天津有 郑州无,直营无? 5. 部分城市告知cbs -- 北京有,杭州有,太原有,南京苏州天津有 郑州无,直营无?
@@ -195,23 +195,23 @@ sidebar_position: 7
太原:《相寓资产管理服务合同》补充协议 {收房维护人 , 租赁区副总监} 太原:《相寓资产管理服务合同》补充协议 [收房维护人 , 租赁区副总监]
南京:《南京相寓资产管理服务合同》补充协议 {相寓主管 , 相寓区域经理} 南京:《南京相寓资产管理服务合同》补充协议 [相寓主管 , 相寓区域经理]
苏州:《苏州相寓资产管理服务合同》补充协议 {相寓主管 , 相寓经理} 苏州:《苏州相寓资产管理服务合同》补充协议 [相寓主管 , 相寓经理]
天津:《天津相寓资产管理服务合同》补充协议 {相寓主管 , 相寓区域经理} 天津:《天津相寓资产管理服务合同》补充协议 [相寓主管 , 相寓区域经理]
郑州:《郑州相寓资产管理服务合同》补充协议 {经纪人 , 店经理} 郑州:《郑州相寓资产管理服务合同》补充协议 [经纪人 , 店经理]
北京:《北京相寓资产管理服务合同》补充协议 {经纪人 , 商圈经理} 北京:《北京相寓资产管理服务合同》补充协议 [经纪人 , 商圈经理]
杭州:《杭州相寓资产管理服务合同》补充协议 {租赁经纪人 , 业务主任} 杭州:《杭州相寓资产管理服务合同》补充协议 [租赁经纪人 , 业务主任]
武汉直营:《武汉相寓资产管理服务合同》补充协议 {综合管家 , 业务经理} 武汉直营:《武汉相寓资产管理服务合同》补充协议 [综合管家 , 业务经理]
成都直营:《成都相寓资产管理服务合同》补充协议 {资源经理(原经纪人) , 区域经理(原店经理)} 成都直营:《成都相寓资产管理服务合同》补充协议 [资源经理(原经纪人) , 区域经理(原店经理)]
@@ -248,9 +248,9 @@ wtBlackApplyPage.jsp 加入/解除 申请(work只有申请) HouseInfoAction.comm
屏蔽类型 1:房源;2:楼栋;3:小区 4承租 屏蔽类型 1:房源;2:楼栋;3:小区 4承租
- [x] 加入黑名单审批流变更 - [x] 加入黑名单审批流变更
- [x] 看生产页面分配给谁了 /basicsdate/houseInfo!listContractBlackInfo.action - [x] 看生产页面分配给谁了 /basicsdate/houseInfo{'!'}listContractBlackInfo.action
- [x] 列表数据展示范围 : 要开给管家和经理 , 可以查看自己提交的数据 - [x] 列表数据展示范围 : 要开给管家和经理 , 可以查看自己提交的数据
- [x] 看申请页权限分配给谁了 /basicsdate/houseInfo!wtBlackApplyPage.action?operateKbn=I - [x] 看申请页权限分配给谁了 /basicsdate/houseInfo{'!'}wtBlackApplyPage.action?operateKbn=I
- [x] 申请页面 管家只能屏蔽房源 , 经理只能屏蔽小区和楼栋 - [x] 申请页面 管家只能屏蔽房源 , 经理只能屏蔽小区和楼栋
- [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(卡) ### tina-cms(卡)
https://tina.io/docs/reference/config https://tina.io/docs/reference/config
+2 -2
View File
@@ -33,7 +33,7 @@ const config: Config = {
docs: { docs: {
sidebarPath: './sidebars.ts', sidebarPath: './sidebars.ts',
// 本地部署,编辑链接直接在 Typora 中打开 // 本地部署,编辑链接直接在 Typora 中打开
editUrl: 'typora://file/D:/projects/my-website/', editUrl: 'http://115.190.192.69:3011/admin/docusaurus/_edit/main',
}, },
blog: { blog: {
showReadingTime: false, showReadingTime: false,
@@ -42,7 +42,7 @@ const config: Config = {
type: ['rss', 'atom'], type: ['rss', 'atom'],
xslt: true, xslt: true,
}, },
editUrl: 'typora://file/D:/projects/my-website/', editUrl: 'http://115.190.192.69:3011/admin/docusaurus/_edit/main',
onInlineTags: 'warn', onInlineTags: 'warn',
onInlineAuthors: 'warn', onInlineAuthors: 'warn',
onUntruncatedBlogPosts: 'warn', onUntruncatedBlogPosts: 'warn',
+3 -3
View File
@@ -12208,9 +12208,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/lunr-languages": { "node_modules/lunr-languages": {
"version": "1.20.0", "version": "1.21.0",
"resolved": "https://registry.npmmirror.com/lunr-languages/-/lunr-languages-1.20.0.tgz", "resolved": "https://registry.npmmirror.com/lunr-languages/-/lunr-languages-1.21.0.tgz",
"integrity": "sha512-3LVgE7ekWXt04NBci/hjm+NXJxXZeRXuyClL0kA0HONyBOjxhP3ZQkuWIM4Ok3pbeptUW/rj3XcJcJuJVPwPYA==", "integrity": "sha512-Hj0VwJP1FGwZzVMMZdDtWY2GB2VVKtvVElYtVajzCZCDr2RTucyLpPibrOPGgTlcq2ENQy2gYLtPnzyFu9jZCg==",
"license": "MPL-1.1" "license": "MPL-1.1"
}, },
"node_modules/mark.js": { "node_modules/mark.js": {
+15 -6
View File
@@ -1,17 +1,26 @@
# ============================================ # ============================================
# Sveltia CMS 配置 # Sveltia CMS 配置Decap 兼容语法)
# 后端:Gitea(OAuth2 隐式授权,浏览器直连 Gitea API)
# ============================================ # ============================================
backend: backend:
name: github name: gitea
repo: lhth/testdecap repo: admin/docusaurus
branch: master branch: main
base_url: http://115.190.192.69:3011
auth_endpoint: /login/oauth/authorize
auth_scope: read_user,write:repository
# 在 Gitea「设置 → 应用 → 管理 OAuth2 应用程序」里创建应用,重定向 URI 填:
# http://115.190.192.69:3000/admin/
# http://localhost:3000/admin/ (本地调试,可多行添加)
# Client ID 如下:
client_id: 7d62ff16-bb6b-467e-b5ea-22e238a3d5f8
media_folder: static/img media_folder: static/img
public_folder: /img public_folder: /img
site_url: https://your-docusaurus-site.example.com site_url: http://115.190.192.69:3000
display_url: https://your-docusaurus-site.example.com display_url: http://115.190.192.69:3000
logo: logo:
src: /img/code.ico src: /img/code.ico