nexus 편집자 인증 연동 (자기신고 → 계정)
개요
규칙 변경 편집자를 자기신고(텍스트)에서 계정 인증(scrypt·토큰)으로 전환. SAP대비 분석 G3(편집자인증無) 갭 해소.
무엇을 했는지
경량 계정 인증(감사서버.js)
- scrypt 해싱(crypto.scryptSync 32바이트)+salt(16바이트 랜덤)+timingSafeEqual 비교. data/편집자.json.
- 세션 토큰(crypto.randomBytes 24바이트)→메모리맵 token→username(재기동 시 재로그인).
- 유효아이디 검증(2~20자 영숫자한글_), 비번 4자+.
- 엔드포인트: POST /api/auth/register, /api/auth/login → {ok,token,username}.
저장·롤백 편집자 표기
- 편집자표기(토큰,자기신고): 토큰 유효→계정명 "(인증)", 없으면 자기신고 "(비인증)".
- ★토큰의 계정명 우선(자기신고 편집자 무시)=사칭 차단. 비인증도 기록하되 마킹(감사 무결성).
UI
- 로그인 폼(아이디·비번·로그인·가입), 로그인 시 편집자 입력 잠금+계정명 표시, 상태 표시.
- saveRules/rollback이 인증토큰 전달.
한선씨 우선 예외
인증(scrypt·토큰·salt)은 보안 인프라라 Node crypto가 정석(한선씨 SHA256보다 안전). 판정 로직(4상/규칙)이 아니라 암호+세션이므로 한선씨 정본 대상 아님. 감사서버는 이미 순수 오케스트레이션 JS.
검증(실측)
- 가입→토큰, 중복 가입 차단("이미 존재"), 틀린 비번 거부("불일치").
- 사칭(편집자"사칭"+유효토큰)→"김철수 (인증)"(토큰 우선), 비인증→"익명이 (비인증)".
- UI 인증요소 마운트, 넥서스 5도메인 회귀·감사서버 200 무변경. 테스트 계정/이력 정리.
관련 파일
- 감사서버.js (인증 모듈·엔드포인트·편집자표기·UI 로그인)
- data/편집자.json (런타임 생성, {username:{salt,hash}})
잔여 이슈
- 세션 메모리(재기동 시 재로그인) — 지속 토큰(파일/JWT)은 후보.
- 규칙표별 편집 권한(RBAC) 없음 — 로그인=전 규칙표 편집 가능. 승인권자 해석(erp 권한검증.한선)과 연동 후보.