From 356b884162f98f6ca5692cf452ba36ca7591fff1 Mon Sep 17 00:00:00 2001 From: seo Date: Mon, 15 Jun 2026 10:29:43 +0900 Subject: [PATCH] Issue access cookie for admin sessions --- README.md | 5 ++++- api.php | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f29e6e..4fae8ae 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ - 공통 암호 변경 - 사이트 관리자 로그인 상태에서만 관리 버튼 표시 - 사이트 관리자 로그인 상태에서는 미니앱 실행 시 공통 암호 생략 +- 사이트 관리자 세션으로 미니앱 진입 시 공통 접근 쿠키 자동 발급 ## 구조 @@ -35,4 +36,6 @@ ## 운영 메모 -메인 버튼은 기존 4개를 유지합니다. Rhymix 사이트 관리자 로그인 상태에서는 미니앱 실행 시 공통 암호를 묻지 않습니다. 암호 변경은 배너 우하단의 작은 `관리` 링크에서 처리하며, 이 링크는 사이트 관리자 로그인 상태에서만 표시합니다. 암호 변경 시에는 현재 공통 암호 입력을 계속 요구합니다. +메인 버튼은 기존 4개를 유지합니다. Rhymix 사이트 관리자 로그인 상태에서는 미니앱 실행 시 공통 암호를 묻지 않습니다. 이때 `/custom/launcher/api.php?adminSession=1` 또는 `session=1` 응답에서 공통 접근 쿠키를 함께 발급해, 이동한 미니앱 내부 세션 검사에서도 바로 통과합니다. + +암호 변경은 배너 우하단의 작은 `관리` 링크에서 처리하며, 이 링크는 사이트 관리자 로그인 상태에서만 표시합니다. 암호 변경 시에는 현재 공통 암호 입력을 계속 요구합니다. diff --git a/api.php b/api.php index 1b31597..5baa1a9 100644 --- a/api.php +++ b/api.php @@ -63,11 +63,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (isset($_GET['session'])) { - custom_json(['authenticated' => custom_has_auth_cookie()]); + if (custom_has_auth_cookie()) { + custom_json(['authenticated' => true, 'admin' => false]); + } + + if (custom_is_site_admin()) { + custom_issue_auth_cookie(); + custom_json(['authenticated' => true, 'admin' => true]); + } + + custom_json(['authenticated' => false, 'admin' => false]); } if (isset($_GET['adminSession'])) { - custom_json(['admin' => custom_is_site_admin()]); + $isAdmin = custom_is_site_admin(); + if ($isAdmin) { + custom_issue_auth_cookie(); + } + custom_json(['admin' => $isAdmin, 'authenticated' => $isAdmin || custom_has_auth_cookie()]); } if (isset($_GET['failMessages'])) {