docs: MNG → DEV 자동 로그인 개발 문서 추가
- front/AUTO_LOGIN_GUIDE.md: React 프론트엔드 구현 가이드 - projects/auto-login/PROGRESS.md: 개발 진행 상태 및 세션 재개 가이드 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
187
projects/auto-login/PROGRESS.md
Normal file
187
projects/auto-login/PROGRESS.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# MNG → DEV 자동 로그인 기능 개발
|
||||
|
||||
> **최종 업데이트:** 2025-12-20
|
||||
> **상태:** ✅ API/MNG 백엔드 완료, 🔄 React 프론트엔드 대기
|
||||
|
||||
---
|
||||
|
||||
## 📋 필수 참조 문서
|
||||
|
||||
**⚠️ 작업 시작 전 반드시 확인:**
|
||||
- [x] `docs/guides/PROJECT_DEVELOPMENT_POLICY.md` - 개발 공통 정책
|
||||
- [x] `docs/front/AUTO_LOGIN_GUIDE.md` - React 프론트엔드 구현 가이드
|
||||
|
||||
---
|
||||
|
||||
## 🎯 개요
|
||||
|
||||
MNG 관리자가 사용자 목록에서 "DEV 접속" 버튼을 클릭하면, 해당 사용자로 자동 로그인되어 DEV 사이트로 이동하는 기능.
|
||||
|
||||
### 환경별 URL
|
||||
| 환경 | MNG | DEV |
|
||||
|------|-----|-----|
|
||||
| 로컬 | https://mng.sam.kr | https://dev.sam.kr |
|
||||
| 개발 | https://mng.codebridge-x.com | https://dev.codebridge-x.com |
|
||||
|
||||
### 아키텍처
|
||||
```
|
||||
MNG에서 DEV 접속 클릭
|
||||
↓
|
||||
MNG API → login_tokens 테이블에 One-Time Token 생성 (5분 만료)
|
||||
↓
|
||||
MNG → DEV URL + token 파라미터로 새 창 열기
|
||||
↓
|
||||
DEV React → API token-login 호출
|
||||
↓
|
||||
API → token 검증 → access_token 발급 → token 삭제 (1회용)
|
||||
↓
|
||||
DEV React → 로그인 완료 → 대시보드 이동
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 진행 상태
|
||||
|
||||
### Phase 1: API 백엔드 (api 프로젝트) ✅ 완료
|
||||
|
||||
| 단계 | 작업 | 상태 | 비고 |
|
||||
|------|------|------|------|
|
||||
| 1.1 | login_tokens 마이그레이션 생성 | ✅ 완료 | 2025_12_20_132721_create_login_tokens_table.php |
|
||||
| 1.2 | LoginToken 모델 생성 | ✅ 완료 | app/Models/LoginToken.php |
|
||||
| 1.3 | token-login 엔드포인트 추가 | ✅ 완료 | ApiController.php |
|
||||
| 1.4 | 라우트 추가 | ✅ 완료 | POST /api/v1/token-login |
|
||||
|
||||
### Phase 2: MNG 백엔드 (mng 프로젝트) ✅ 완료
|
||||
|
||||
| 단계 | 작업 | 상태 | 비고 |
|
||||
|------|------|------|------|
|
||||
| 2.1 | DEV_APP_URL 환경설정 | ✅ 완료 | .env, config/services.php |
|
||||
| 2.2 | LoginToken 모델 생성 | ✅ 완료 | app/Models/LoginToken.php |
|
||||
| 2.3 | loginToken API 메서드 추가 | ✅ 완료 | Api/Admin/UserController.php |
|
||||
| 2.4 | 라우트 추가 | ✅ 완료 | POST /api/admin/users/{id}/login-token |
|
||||
| 2.5 | "DEV 접속" 버튼 UI 추가 | ✅ 완료 | users/partials/table.blade.php |
|
||||
| 2.6 | JavaScript 함수 추가 | ✅ 완료 | users/index.blade.php |
|
||||
|
||||
### Phase 3: React 프론트엔드 (react 프로젝트) 🔄 대기
|
||||
|
||||
| 단계 | 작업 | 상태 | 비고 |
|
||||
|------|------|------|------|
|
||||
| 3.1 | /auto-login 페이지 생성 | ⏳ 대기 | 프론트엔드 담당 |
|
||||
| 3.2 | token-login API Route 생성 | ⏳ 대기 | 프론트엔드 담당 |
|
||||
| 3.3 | auth-config.ts 수정 | ⏳ 대기 | 프론트엔드 담당 |
|
||||
|
||||
> **Note:** React 구현은 `docs/front/AUTO_LOGIN_GUIDE.md` 참조
|
||||
|
||||
---
|
||||
|
||||
## 📁 변경된 파일
|
||||
|
||||
### API 프로젝트 (api/)
|
||||
```
|
||||
api/
|
||||
├── database/migrations/
|
||||
│ └── 2025_12_20_132721_create_login_tokens_table.php (생성)
|
||||
├── app/Models/
|
||||
│ └── LoginToken.php (생성)
|
||||
├── app/Http/Controllers/Api/V1/
|
||||
│ └── ApiController.php (수정 - tokenLogin 메서드 추가)
|
||||
└── routes/
|
||||
└── api.php (수정 - token-login 라우트 추가)
|
||||
```
|
||||
|
||||
### MNG 프로젝트 (mng/)
|
||||
```
|
||||
mng/
|
||||
├── .env (수정 - DEV_APP_URL 추가)
|
||||
├── config/
|
||||
│ └── services.php (수정 - dev 설정 추가)
|
||||
├── app/Models/
|
||||
│ └── LoginToken.php (생성)
|
||||
├── app/Http/Controllers/Api/Admin/
|
||||
│ └── UserController.php (수정 - loginToken 메서드 추가)
|
||||
├── routes/
|
||||
│ └── api.php (수정 - login-token 라우트 추가)
|
||||
└── resources/views/users/
|
||||
├── partials/table.blade.php (수정 - DEV 접속 버튼 추가)
|
||||
└── index.blade.php (수정 - openDevSite 함수 추가)
|
||||
```
|
||||
|
||||
### React 프로젝트 (react/) - 프론트엔드 담당
|
||||
```
|
||||
react/
|
||||
├── src/app/[locale]/auto-login/page.tsx (생성 예정)
|
||||
├── src/app/api/auth/token-login/route.ts (생성 예정)
|
||||
└── src/lib/api/auth/auth-config.ts (수정 예정)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ 테이블 설계
|
||||
|
||||
### login_tokens 테이블
|
||||
|
||||
```php
|
||||
Schema::create('login_tokens', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('user_id')->comment('사용자 ID');
|
||||
$table->string('token', 64)->unique()->comment('One-Time Token (64자)');
|
||||
$table->timestamp('expires_at')->comment('만료 시간');
|
||||
$table->timestamps();
|
||||
|
||||
$table->index('token');
|
||||
$table->index('expires_at');
|
||||
$table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
|
||||
});
|
||||
```
|
||||
|
||||
**보안 고려사항:**
|
||||
- 토큰: 64자 랜덤 문자열
|
||||
- 만료: 5분
|
||||
- 1회용: 사용 후 즉시 삭제
|
||||
- HTTPS 필수
|
||||
|
||||
---
|
||||
|
||||
## 📝 변경 이력
|
||||
|
||||
| 날짜 | 시간 | 작업 내용 | 상태 |
|
||||
|------|------|----------|------|
|
||||
| 2025-12-20 | - | React 구현 가이드 문서화 | ✅ |
|
||||
| 2025-12-20 | - | 개발 계획 문서 생성 | ✅ |
|
||||
| 2025-12-20 | - | API 백엔드 개발 완료 | ✅ |
|
||||
| 2025-12-20 | - | MNG 백엔드 개발 완료 | ✅ |
|
||||
| 2025-12-20 | - | React 프론트엔드 대기 | 🔄 |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 세션 재개 시 체크리스트
|
||||
|
||||
세션이 끊겼다가 다시 시작할 때:
|
||||
|
||||
1. [x] 이 문서 (PROGRESS.md) 확인
|
||||
2. [x] `docs/guides/PROJECT_DEVELOPMENT_POLICY.md` 정책 확인
|
||||
3. [x] 현재 단계 및 상태 파악
|
||||
4. [x] 다음 작업 항목 확인
|
||||
5. [ ] 관련 파일 상태 확인 (git status)
|
||||
6. [ ] 이어서 작업 진행
|
||||
|
||||
---
|
||||
|
||||
## 🚀 다음 단계
|
||||
|
||||
1. **프론트엔드 개발자 검토**
|
||||
- `docs/front/AUTO_LOGIN_GUIDE.md` 문서 검토
|
||||
- React 구현 진행
|
||||
|
||||
2. **테스트**
|
||||
- MNG 사용자 목록에서 "DEV 접속" 버튼 클릭
|
||||
- DEV 사이트 자동 로그인 확인
|
||||
- 대시보드 이동 확인
|
||||
|
||||
3. **커밋**
|
||||
- API 프로젝트 커밋
|
||||
- MNG 프로젝트 커밋
|
||||
|
||||
---
|
||||
|
||||
> **Note:** 이 문서는 작업 진행에 따라 실시간 업데이트됩니다.
|
||||
Reference in New Issue
Block a user