revert(cafe24): 디자인 scope 요청 철회 — 스킨 파일 API 가 존재하지 않음
운영몰에서 직접 확인한 결과(API 버전 2026-03-01):
GET /admin/themes/pages → No API found. (엔드포인트 없음)
GET /admin/themes → 디자인 권한이 있으면 조회 가능하나 테마 목록뿐,
스킨 파일 내용은 응답에 없음
스킨 HTML 파일(product/detail.html)을 읽거나 쓰는 엔드포인트는 아예 없다.
권한이 아니라 기능이 없는 문제이므로 디자인 scope 를 요청해도 쓸 데가 없다.
DEFAULT_SCOPES 를 상품 권한만으로 되돌린다 — 쓰지 않는 권한을 토큰에 담아두면
유출 시 피해 범위만 넓어진다. 아직 재인증하지 않은 상태라(insufficient_scope 로
확인됨) 되돌리는 데 추가 조치가 필요하지 않다.
같은 시도를 반복하지 않도록 확인 사실을 config.py 와 문서에 표로 남겼다.
스크립트 태그(/admin/scripttags)가 유일한 주입 수단이며 mall.write_store 권한과
외부 공개 HTTPS JS 엔드포인트가 필요하다는 점도 함께 적었다.
상단 공통 홍보 숨김은 상품 상세설명 CSS 방식(set_promo_hidden)을 그대로 쓴다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+22
-6
@@ -204,9 +204,23 @@ cafe24_oauth_tokens 저장
|
||||
const numbers = [12,31,32, ...]; // .edb-img-tag-w 를 remove()
|
||||
```
|
||||
|
||||
**카페24 Admin API 로는 이 파일을 고칠 수 없다.** 확인 결과 스킨/테마는 조회만
|
||||
가능하고(`GET /admin/themes`), 스킨 HTML 파일을 읽거나 쓰는 엔드포인트가 없다.
|
||||
쓸 수 있는 것은 테마 페이지와 스크립트 태그(`/admin/scripttags`)뿐이다.
|
||||
**카페24 Admin API 로는 이 파일을 고칠 수 없다.** 운영몰에서 직접 호출해 확인했다
|
||||
(2026-08-14, API 버전 2026-03-01).
|
||||
|
||||
| 호출 | 결과 |
|
||||
| --- | --- |
|
||||
| `GET /admin/themes` | 디자인 권한이 있으면 조회 가능하나 **테마 목록뿐** — 파일 내용 없음 |
|
||||
| `GET /admin/themes/pages` | **`No API found.`** — 이 버전에 존재하지 않는다 |
|
||||
| 스킨 파일(`product/detail.html`) 읽기/쓰기 | **엔드포인트 자체가 없다** |
|
||||
|
||||
권한 문제가 아니라 기능이 없는 것이므로, 디자인 권한을 추가해도 달라지지 않는다.
|
||||
그래서 `DEFAULT_SCOPES` 에 디자인 scope 를 **넣지 않는다**(쓰지 않는 권한은 요청하지
|
||||
않는다 — `app/integrations/cafe24/config.py` 주석 참고).
|
||||
|
||||
페이지에 코드를 주입하는 유일한 수단은 스크립트 태그(`/admin/scripttags`)인데,
|
||||
디자인이 아니라 **`mall.write_store`(상점)** 권한이며 **인라인 코드가 아닌 외부 HTTPS
|
||||
URL** 만 받는다. 쓰려면 우리 서버에 공개 JS 엔드포인트를 두고 쇼핑몰이 그것을 불러가게
|
||||
해야 한다.
|
||||
|
||||
그래서 같은 결과를 **상품 상세설명 안의 CSS** 로 낸다. 상세설명은 우리가 쓸 수 있고,
|
||||
상품별로 켜고 끌 수 있으며, 상태가 그 상품 소스에 그대로 보인다.
|
||||
@@ -226,9 +240,11 @@ const numbers = [12,31,32, ...]; // .edb-img-tag-w 를 remove()
|
||||
- 스킨의 `numbers` 목록과는 독립이다. 이미 목록에 있는 상품은 그대로 두면 된다
|
||||
(스킨은 요소를 제거하고, 이쪽은 CSS 로 숨긴다 — 결과는 같고 충돌하지 않는다).
|
||||
|
||||
> 스킨의 `numbers` 방식을 그대로 자동화하려면 `/admin/scripttags` 로 전역 스크립트를
|
||||
> 주입하는 방법이 있다. 다만 **디자인 쓰기 권한 추가 + 재인증**이 필요하고, 상품별
|
||||
> 상태가 한 곳에 몰려 관리가 어려워진다. 지금은 채택하지 않았다.
|
||||
> 스킨의 `numbers` 방식(요소 제거 + 목록 한 곳 관리)을 자동화하려면 `/admin/scripttags`
|
||||
> 로 전역 스크립트를 주입하는 방법뿐이다. 필요한 것: **`mall.write_store` 권한 추가 +
|
||||
> 재인증**, 그리고 **우리 서버의 공개 HTTPS JS 엔드포인트**(쇼핑몰 방문자 브라우저가
|
||||
> 직접 불러가므로 인증을 걸 수 없다). 쇼핑몰이 우리 서버 가용성에 의존하게 되는 것도
|
||||
> 감안해야 한다. 지금은 채택하지 않았다.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user