Commit Graph

25 Commits

Author SHA1 Message Date
dsyoon
a72dcb154a 열기 링크에 사용자 식별값 전달
- /go 리다이렉트 엔드포인트 추가: 로그인 시 email, 비로그인 시 IP를 쿼리에 부착
- ncue.net 및 하위 도메인 링크에만 적용(안전한 allowlist)
- script.js 및 index.html 폴백에서 열기 버튼을 /go 경유로 변경

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 11:55:20 +09:00
dsyoon
d161b61783 관리자 이메일 확장 및 폴백 동작 정리
- 기본 관리자 이메일 목록에 추가 계정 반영
- script.js 로드 실패 시 폴백에서도 /api/config/auth hydrate 및 /api/auth/sync 호출
- 폴백에서 관리자 전용 기능 잠금 및 로그인 전 내보내기 비활성화 적용

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 09:56:58 +09:00
dsyoon
17a6790abc 로그인 전 내보내기 비활성화
- 로그인 전에는 내보내기 버튼을 disabled 처리

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 09:41:10 +09:00
dsyoon
fb2153cbb0 로그인 설정 UI 제거 및 .env 기반 설정
- 로그인 설정 모달(UI) 제거
- 허용 이메일 라벨을 관리자 이메일로 변경
- Auth0/관리자 이메일을 서버 .env에서 제공하고 클라이언트가 자동 로드

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 21:31:52 +09:00
dsyoon
c2ba78db5c Persist shared auth config in DB
Add ncue_app_config and /api/config/auth endpoints, and hydrate Auth0 config from the server so other browsers don't see the setup modal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 21:16:37 +09:00
dsyoon
a1e37759cc Make user sync configurable and visible
Add optional apiBase for /api endpoints and surface sync failures so admins know when ncue_user writes are not reaching the backend.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 21:13:01 +09:00
dsyoon
ee985a707a Persist user login/logout audit in ncue_user
Add first_login_at and last_logout_at, ensure table exists at runtime, upsert user on /api/auth/sync, and record logout via /api/auth/logout from the client.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:59:01 +09:00
dsyoon
b9668a92e6 Gate link access by login level
Disable open/copy for non-allowed services based on anonymous/logged-in/admin email tiers and show an '접근 제한' tag on restricted cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:56:28 +09:00
dsyoon
21834aa728 Support Auth0 login without SPA SDK (PKCE)
If createAuth0Client is unavailable on static hosting, use manual OAuth2 PKCE flow for Google login, token storage, and logout, while keeping email allowlist and optional server sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:48:20 +09:00
dsyoon
58750febcc Fix favicon onerror null parent
Capture parent before removing broken favicon image to avoid insertAdjacentHTML on null.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:41:40 +09:00
dsyoon
fec952c9ee Restore favicons using site /favicon.ico
Show each link's favicon from its origin instead of letter-only badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:40:00 +09:00
dsyoon
c0a1783519 Avoid external favicon fetches
Render letter badges instead of fetching favicons to prevent noisy 404 errors from Google favicon endpoints.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:36:35 +09:00
dsyoon
d32981da7d Keep only Google quick login
Remove Kakao/Naver quick login buttons and config inputs, leaving Google as the sole provider in both main and fallback auth wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 20:21:52 +09:00
dsyoon
2f45475bc5 Fix Auth modal cfg redeclare and auto-open setup
Remove duplicate cfg declaration causing Chrome SyntaxError and auto-open the login setup modal once per browser when Auth0 is not configured.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:31:29 +09:00
dsyoon
812a59bc9f Add full-feature inline fallback when script.js fails
If external JS fails to load on some static hosts, run an inline version supporting add/edit/delete/favorite/search/sort/import/export/theme so the UI is never dead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:25:54 +09:00
dsyoon
37fe555941 Add JS fallback render and remove asset query strings
Render basic cards if script.js fails to execute, show quick login icons by default, and avoid asset query params that can break on some static hosts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:22:39 +09:00
dsyoon
d51951a241 Separate theme and quick login; remove login button
Add a visual divider between theme and quick login, remove the header login button, and prevent end-users from seeing the login config modal by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:19:46 +09:00
dsyoon
3370ca562e Tighten header quick login layout
Shrink SNS circular buttons, move '간편로그인' label to the left, and hide the user/status badge until authenticated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:17:21 +09:00
dsyoon
e6a8e23217 Always show SNS quick login area before auth setup
Display Naver/Kakao/Google quick login UI even when Auth0 is not configured, open config modal on click if connection is missing, and add cache-busting query strings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:14:41 +09:00
dsyoon
9c978f7316 Redesign SNS quick login buttons
Show Naver/Kakao/Google as circular icon buttons with a 'SNS 간편로그인' label, and toggle the group based on configured connections.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:10:32 +09:00
dsyoon
f3ac2abf59 Polish quick login buttons and hidden behavior
Fix [hidden] being overridden by button styles, render Google/Kakao/Naver quick login as icons, and show logout only when authenticated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:07:23 +09:00
dsyoon
fac88b6508 Add social quick login and user sync API
Add quick provider login buttons (Auth0 connections), an API to upsert users into Postgres and gate admin via can_manage, plus schema and Node server.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:04:18 +09:00
dsyoon
5e898d3e04 Add in-page login config modal
Allow setting Auth0 domain/clientId and allowed emails via a modal saved to localStorage to enable login testing without redeploying.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 17:58:17 +09:00
dsyoon
97c8fe8069 Add Auth0 login gate for admin actions
Show login status in header, guard manage actions behind allowed emails, and add Auth0 SPA SDK with CDN fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 17:53:59 +09:00
dsyoon
02082eb16d Add static links dashboard
Includes JSON-ordered link cards, search/sort, favorites, CRUD, and import/export with localStorage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 17:33:14 +09:00