Files
custom-launcher/README.md
T

2.4 KiB

Custom Launcher

사이트 본문에 작은 iOS 스타일 배너로 삽입되는 런처입니다.

<meta charset="UTF-8">
<link href="/custom/common/css/launcher.css" rel="stylesheet" />
<div id="findMyShortcut" class="find-container"></div>
<script src="/custom/launcher/js/main.js"></script>

기능

  • 나의 찾기 이동
  • PC 켜기
  • 콕 찌르기
  • 차량 모니터 이동
  • 공통 암호 로그인
  • 공통 암호 변경
  • 숫자 전용 PIN 입력과 커스텀 숫자 키패드
  • 사이트 관리자 로그인 상태에서만 관리 버튼 표시
  • 사이트 관리자 로그인 상태에서는 미니앱 실행 시 공통 암호 생략
  • 사이트 관리자 세션으로 미니앱 진입 시 공통 접근 쿠키 자동 발급

구조

  • api.php: 로그인, 로그아웃, 암호 변경, 관리자 세션 확인, 콕 찌르기 카운트/웹훅 처리
  • js/main.js: 4개 아이콘 렌더링, 인증 흐름, 암호 변경 UI
  • css/style.css: 기존 삽입 코드 호환용 공용 CSS import
  • img/: 런처 아이콘 이미지

공통 모듈 연동

인증, 암호 hash 저장, Home Assistant 호출은 /custom/common 모듈을 사용합니다. 런처는 더 이상 Home Assistant 토큰이나 웹훅을 브라우저로 직접 노출하지 않습니다.

런처 CSS 원본은 /custom/common/css/launcher.css를 사용합니다. 기존 운영 HTML이 /custom/launcher/css/style.css를 참조해도 호환 파일이 공용 CSS를 import합니다.

운영 메모

메인 버튼은 기존 4개를 유지합니다. Rhymix 사이트 관리자 로그인 상태에서는 미니앱 실행 시 공통 암호를 묻지 않습니다. 이때 /custom/launcher/api.php?adminSession=1 또는 session=1 응답에서 공통 접근 쿠키를 함께 발급해, 이동한 미니앱 내부 세션 검사에서도 바로 통과합니다.

암호는 숫자만 허용합니다. 로그인과 암호 변경 입력창은 inputmode=numeric, [0-9]* 패턴, 커스텀 숫자 키패드를 사용하며 Android/iPhone에서 문자 키보드가 뜨지 않도록 readonly 입력창에 화면 키패드로 값을 넣습니다. 서버 API도 숫자가 아닌 암호를 거부합니다.

암호 변경은 배너 우하단의 작은 관리 링크에서 처리하며, 이 링크는 사이트 관리자 로그인 상태에서만 표시합니다. 암호 변경 시에는 현재 공통 암호 입력을 계속 요구합니다.