# 네이버 자동 로그인 + 쿠키 자동 갱신 모듈

## 작업 개요
Playwright 기반으로 네이버에 사람처럼 로그인하고, NID_AUT/NID_SES 쿠키를 자동 추출하여 .env.keys를 업데이트하는 모듈을 구축한다.
BlogAuto 발행 전 쿠키 만료 시 자동 재로그인.

## 인증 정보
- `.env.keys`에서 로드: `NAVER_LOGIN_ID`, `NAVER_LOGIN_PW`
- ⚠️ 코드/로그/보고서에 ID/PW 절대 노출 금지

## 핵심 구현 사항

### 1. 사람처럼 타이핑 모듈
- `/home/jay/projects/BlogAuto/publisher/naver_login.py` 생성
- **타이핑 속도**: 글자당 150~350ms 랜덤 딜레이 (평균 ~240타/분, 일반인 수준)
- **랜덤 오타**: 전체 글자의 5~10%에서 1~2글자 오타 발생 → 백스페이스 → 정정
- **입력 전 대기**: 입력칸 클릭 → 500~1500ms 대기 (키보드에 손 올리는 시간)
- **입력 간 대기**: ID 입력 후 → PW 입력칸까지 300~800ms
- **로그인 버튼 클릭 전**: 500~2000ms 랜덤 대기
- **마우스 움직임**: 직선이 아닌 자연스러운 곡선 이동 (Playwright의 steps 옵션 활용)

### 2. Chrome 프로필 세션 유지
- Chrome 사용자 데이터 디렉토리: `/home/jay/projects/BlogAuto/.chrome-profile/`
- Playwright `--user-data-dir` 옵션으로 프로필 지정
- 한번 로그인 성공하면 프로필에 세션 저장 → 다음 접속 시 자동 로그인 상태
- 세션 만료 시에만 재로그인

### 3. 쿠키 추출 + .env.keys 업데이트
- 로그인 성공 후 `NID_AUT`, `NID_SES` 쿠키 추출
- `.env.keys` 파일에서 해당 변수 자동 업데이트
- 기존 값 → 새 값으로 교체 (sed 또는 Python으로)

### 4. 쿠키 유효성 체크
- 발행 전 현재 쿠키로 `https://blog.naver.com/mylog` 접속 테스트
- 로그인 상태이면 → 기존 쿠키 사용 (재로그인 불필요)
- 로그아웃 상태이면 → 자동 재로그인 → 새 쿠키 발급

### 5. BlogAuto 통합
- `NaverBlogPublisher.publish()` 호출 전 쿠키 유효성 자동 체크
- 만료 시 `naver_login.py`의 `auto_login()` 호출 → 쿠키 갱신 → 발행 계속
- 기존 `blog-publish-naver` 스킬 동작에 투명하게 통합

## 로그인 흐름 (상세)
```
1. Chrome 프로필로 Playwright 실행 (headless)
2. https://nid.naver.com/nidlogin.login 접속
3. 이미 로그인 상태? → 쿠키 추출 → 완료
4. 로그인 폼 감지
5. ID 입력칸 클릭 (자연스러운 마우스 이동)
6. 500~1500ms 대기
7. ID 타이핑 (150~350ms/글자, 랜덤 오타 5~10%)
8. Tab 또는 PW 입력칸 클릭 (300~800ms 대기)
9. PW 타이핑 (동일 패턴)
10. 500~2000ms 대기
11. 로그인 버튼 클릭
12. 로그인 성공 확인 (URL 변경 또는 쿠키 존재)
13. NID_AUT, NID_SES 쿠키 추출
14. .env.keys 업데이트
15. Chrome 프로필 저장 (다음 접속용)
```

## CLI 인터페이스
```bash
# 쿠키 유효성 체크
python3 -m publisher.naver_login check

# 수동 로그인 (쿠키 갱신)
python3 -m publisher.naver_login login

# 자동 (체크 → 만료 시 로그인)
python3 -m publisher.naver_login auto
```

## 테스트
- 쿠키 유효성 체크 정상 동작
- 로그인 성공 → 쿠키 추출 → .env.keys 업데이트 확인
- Chrome 프로필 재사용 → 재로그인 없이 접속 확인
- 타이핑 딜레이가 지정 범위(150~350ms) 내인지 확인
- 오타 발생 + 백스페이스 정정 동작 확인

## 파일 목록
- `/home/jay/projects/BlogAuto/publisher/naver_login.py` — 신규
- `/home/jay/projects/BlogAuto/publisher/naver_blog.py` — 수정 (쿠키 자동 갱신 통합)
- `/home/jay/projects/BlogAuto/tests/test_naver_login.py` — 신규

## 완료 기준
- 사람처럼 타이핑하는 로그인 동작
- Chrome 프로필 세션 유지
- 쿠키 만료 시 자동 재로그인
- BlogAuto 발행 전 투명한 쿠키 갱신
- .env.keys 자동 업데이트