o2o-site-AEO/solution/frontend
Mina Choi 969fb6773c [feat] solution/frontend: 로그인을 에디터 진입에서 한 번만 받는다
위저드를 걷는 동안 '로그인이 만료되었습니다' 가 떴다. 만료가 아니라 **한 번도 로그인한 적이
없는 것**이었다(자동 로그인 계정이 없으면 ensureAutoSession 이 즉시 끝난다). 문구가 사실과 달라
고장으로 읽혔다.

- features/auth/EditorSignInGate: 에디터에 들어갈 때만 로그인을 받는다. 위저드 1~5단계는
  요구하지 않는다 — 만들어 보기도 전에 막으면 아무도 안 만든다. /login 으로 튕기지 않는 이유는
  위저드에서 쌓은 상태를 들고 돌아올 방법을 사장님이 알 수 없기 때문이다
- features/auth/SignInForm: 로그인 화면과 관문이 같은 폼을 쓴다. 두 벌로 두면 토큰을 심는
  순서(signIn → me)가 한쪽에서만 지켜지고, 그 실수는 "로그인은 됐는데 계속 401" 로 나타난다
- usePlaceSearch: 토큰이 없을 때의 문구에서 '만료' 를 걷어낸다. 검색은 서버가 토큰을 요구하므로
  (place.py 전 엔드포인트가 IsValidAccessToken) 프론트가 없앨 수 있는 제약이 아니다

tsc·eslint·vite build 통과
2026-09-02 09:03:17 +09:00
..
public [chore] solution/frontend,docs: Bing 소유확인 파일 추가 — 이미지에 구워야 재생성에도 살아남는다 2026-09-01 13:33:48 +09:00
src [feat] solution/frontend: 로그인을 에디터 진입에서 한 번만 받는다 2026-09-02 09:03:17 +09:00
.env.example [feat] deploy,backend,site: 킹서버 배포 + 설정을 최상위 .env 하나로 통합 2026-09-01 10:04:36 +09:00
components.json 이름: solution/front → solution/frontend 2026-08-31 15:27:16 +09:00
eslint.config.js 이름: solution/front → solution/frontend 2026-08-31 15:27:16 +09:00
index.html [feat] solution/frontend: 템플릿이 색만 바꾸던 걸 끝낸다 — 업종당 5개에서 3개로 2026-09-02 08:49:38 +09:00
orval.config.ts 이름: solution/front → solution/frontend 2026-08-31 15:27:16 +09:00
package.json 구조: admin 을 backend/frontend 로 가른다 2026-08-31 16:22:29 +09:00
tsconfig.json 이름: solution/front → solution/frontend 2026-08-31 15:27:16 +09:00
vite.config.ts [feat] deploy,solution/frontend: 운영에서 dev 서버를 걷어낸다 — 정적 번들을 nginx 가 서빙 2026-09-01 11:46:32 +09:00