런처 어디야 바로가기 반영
This commit is contained in:
1 parent
65664ba598
commit
acf6cbe530
3 files changed
+6
-6
No files matched your search
@@ -39,13 +39,13 @@
|
|||||||
|
|
||||||
## 운영 메모
|
## 운영 메모
|
||||||
|
|
||||||
일반 사용자 화면은 나의 찾기, 콕 찌르기, 신호등, 프로젝트 4개 버튼을 표시합니다. 신호등과 프로젝트 바로가기는 공개 서비스로 이동하므로 공통 암호 인증을 거치지 않습니다.
|
일반 사용자 화면은 나의 찾기, 콕 찌르기, 어디야?, 프로젝트 4개 버튼을 표시합니다. 어디야?와 프로젝트 바로가기는 공개 서비스로 이동하므로 공통 암호 인증을 거치지 않습니다.
|
||||||
|
|
||||||
Rhymix 사이트 관리자 로그인 상태에서는 첫 줄에 나의 찾기, 콕 찌르기, 신호등, 프로젝트를 일반 사용자 화면과 같은 순서로 표시하고, 두 번째 줄에 PC 켜기, Block, Notice, Speed Stats를 표시합니다. PC 켜기와 Speed Stats는 관리자 전용이며 일반 공통 암호 쿠키만으로는 사용할 수 없습니다. PC 켜기는 `/custom/wakeonlan/api.php`를 통해 Control의 `wake_lan` API로 WOL 요청을 보냅니다. Weblog는 관리자 대시보드에서도 접근할 수 있으므로 런처 관리자 바로가기에서는 제외합니다. 신호등은 `https://signal.chaegeon.com`, 프로젝트 바로가기는 공개 저장소 목록인 `https://git.chaegeon.com/explore/repos`로 이동합니다. 관리자 상태에서 미니앱을 실행하면 공통 암호를 묻지 않습니다. 이때 `/custom/launcher/api.php?adminSession=1` 또는 `session=1` 응답에서 관리자 공통 접근 쿠키를 함께 발급해, 이동한 미니앱 내부 세션 검사에서도 바로 통과합니다.
|
Rhymix 사이트 관리자 로그인 상태에서는 첫 줄에 나의 찾기, 콕 찌르기, 어디야?, 프로젝트를 일반 사용자 화면과 같은 순서로 표시하고, 두 번째 줄에 PC 켜기, Block, Notice, Speed Stats를 표시합니다. PC 켜기와 Speed Stats는 관리자 전용이며 일반 공통 암호 쿠키만으로는 사용할 수 없습니다. PC 켜기는 `/custom/wakeonlan/api.php`를 통해 Control의 `wake_lan` API로 WOL 요청을 보냅니다. Weblog는 관리자 대시보드에서도 접근할 수 있으므로 런처 관리자 바로가기에서는 제외합니다. 어디야?는 `https://eodiya.net`, 프로젝트 바로가기는 공개 저장소 목록인 `https://git.chaegeon.com/explore/repos`로 이동합니다. 관리자 상태에서 미니앱을 실행하면 공통 암호를 묻지 않습니다. 이때 `/custom/launcher/api.php?adminSession=1` 또는 `session=1` 응답에서 관리자 공통 접근 쿠키를 함께 발급해, 이동한 미니앱 내부 세션 검사에서도 바로 통과합니다.
|
||||||
|
|
||||||
공통 암호로 로그인한 일반 인증 쿠키는 2시간 유지합니다. 사이트 관리자 세션이 확인되어 발급된 관리자 인증 쿠키는 반영구 운영값으로 10년 유지합니다. `/custom/launcher/api.php?session=1`은 현재 브라우저가 가진 공통 쿠키 또는 사이트 관리자 세션을 확인하고, `/custom/launcher/api.php?adminSession=1`은 관리 버튼 노출처럼 실제 Rhymix 관리자 세션이 필요한 화면에서만 사용합니다. `adminSession=1`은 일반 공통 쿠키를 인증으로 섞지 않고 실제 관리자 여부만 내려줍니다. 런처가 관리자 아이콘을 표시한 뒤에도 브라우저 포커스가 돌아오거나 탭이 다시 보이면 관리자 세션을 재확인하고, 이미 관리자 로그인이 풀렸으면 일반 사용자 화면으로 다시 그립니다.
|
공통 암호로 로그인한 일반 인증 쿠키는 2시간 유지합니다. 사이트 관리자 세션이 확인되어 발급된 관리자 인증 쿠키는 반영구 운영값으로 10년 유지합니다. `/custom/launcher/api.php?session=1`은 현재 브라우저가 가진 공통 쿠키 또는 사이트 관리자 세션을 확인하고, `/custom/launcher/api.php?adminSession=1`은 관리 버튼 노출처럼 실제 Rhymix 관리자 세션이 필요한 화면에서만 사용합니다. `adminSession=1`은 일반 공통 쿠키를 인증으로 섞지 않고 실제 관리자 여부만 내려줍니다. 런처가 관리자 아이콘을 표시한 뒤에도 브라우저 포커스가 돌아오거나 탭이 다시 보이면 관리자 세션을 재확인하고, 이미 관리자 로그인이 풀렸으면 일반 사용자 화면으로 다시 그립니다.
|
||||||
|
|
||||||
`signal.chaegeon.com`은 Rhymix 관리자 세션을 확인할 때만 런처 API를 CORS로 호출합니다. 이때 `adminSession=1&adminTicket=traffic-signal-pass` 요청에서 실제 사이트 관리자 세션이 확인되면 5분짜리 서명 티켓을 내려주고, 교차로 신호 서버는 이 티켓을 `validateAdminTicket=1`로 다시 검증한 뒤 위치 기록 관리자 화면을 엽니다. 클라이언트의 관리자 표시값만으로 위치 기록을 열지 않습니다.
|
`eodiya.net`은 Rhymix 관리자 세션을 확인할 때만 런처 API를 CORS로 호출합니다. 이때 `adminSession=1&adminTicket=traffic-signal-pass` 요청에서 실제 사이트 관리자 세션이 확인되면 5분짜리 서명 티켓을 내려주고, 어디야? 서버는 이 티켓을 `validateAdminTicket=1`로 다시 검증한 뒤 위치 기록 관리자 화면을 엽니다. 클라이언트의 관리자 표시값만으로 위치 기록을 열지 않습니다.
|
||||||
|
|
||||||
Rhymix 로그인 실패 차단 세션이 살아 있으면 `session=1` 응답이 `loginBlocked`를 내려줍니다. 이때 런처는 아이콘, 관리 버튼, PIN 입력을 숨기고 빨간 제한 안내만 표시합니다.
|
Rhymix 로그인 실패 차단 세션이 살아 있으면 `session=1` 응답이 `loginBlocked`를 내려줍니다. 이때 런처는 아이콘, 관리 버튼, PIN 입력을 숨기고 빨간 제한 안내만 표시합니다.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ header('Cache-Control: no-store');
|
|||||||
$origin = (string)($_SERVER['HTTP_ORIGIN'] ?? '');
|
$origin = (string)($_SERVER['HTTP_ORIGIN'] ?? '');
|
||||||
$allowedOrigins = [
|
$allowedOrigins = [
|
||||||
'https://chaegeon.com',
|
'https://chaegeon.com',
|
||||||
'https://signal.chaegeon.com',
|
'https://eodiya.net',
|
||||||
];
|
];
|
||||||
if (in_array($origin, $allowedOrigins, true)) {
|
if (in_array($origin, $allowedOrigins, true)) {
|
||||||
header('Access-Control-Allow-Origin: ' . $origin);
|
header('Access-Control-Allow-Origin: ' . $origin);
|
||||||
|
|||||||
+2
-2
@@ -100,8 +100,8 @@ const userIconItems = [
|
|||||||
{
|
{
|
||||||
id: 'signal',
|
id: 'signal',
|
||||||
img: '/custom/launcher/img/signal.svg',
|
img: '/custom/launcher/img/signal.svg',
|
||||||
label: '신호등',
|
label: '어디야?',
|
||||||
onclick: () => openLauncherTarget('https://signal.chaegeon.com')
|
onclick: () => openLauncherTarget('https://eodiya.net')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'project',
|
id: 'project',
|
||||||
|
|||||||
Reference in new issue
Block a user