# 자동 로그인 기능 데모
## 개선 사항
이제 CLI 명령어를 실행할 때 로그인이 필요하면 **자동으로 로그인 프롬프트**가 표시됩니다!
## 사용 예시
### Before (이전)
```bash
$ whatap-mxql projects
✗ Not logged in. Please login first using: whatap-mxql login
# 사용자가 수동으로 login 명령어 실행해야 함
```
### After (개선 후)
```bash
$ whatap-mxql projects
You are not logged in.
? Would you like to login now? (Y/n) Y
Enter your WhaTap credentials:
? Email: devload@whatap.io
? Password: ********
? Service URL: (https://service.whatap.io)
ℹ Authenticating...
✓ Successfully logged in!
ℹ Fetching projects...
✓ Found 12 project(s)
┌──────────────┬─────────────────────────┬─────────┬────────────┐
│ Project Code │ Project Name │ Type │ Status │
├──────────────┼─────────────────────────┼─────────┼────────────┤
│ 27506 │ Browser Monitoring Demo │ BROWSER │ subscribe │
│ 44482 │ mobile test project │ MOBILE │ subscribe │
└──────────────┴─────────────────────────┴─────────┴────────────┘
```
## 동작 방식
1. **세션 확인**: 명령어 실행 시 세션이 있는지 확인
2. **자동 프롬프트**: 세션이 없으면 로그인 여부 묻기
3. **대화형 로그인**: 사용자가 승낙하면 credential 입력 받기
4. **자동 진행**: 로그인 성공 후 원래 명령어 계속 실행
## 적용 명령어
자동 로그인이 적용되는 명령어:
- ✅ `whatap-mxql projects` - 프로젝트 목록
- ✅ `whatap-mxql query <pcode> "<mxql>"` - 쿼리 실행
- ✅ `whatap-mxql interactive` - 대화형 모드
## 로그인 거부 시
사용자가 로그인을 거부하면:
```bash
$ whatap-mxql projects
You are not logged in.
? Would you like to login now? No
✗ Login required to continue. Please run: whatap-mxql login
```
## 장점
1. **원활한 UX**: 처음 사용자도 바로 시작 가능
2. **자연스러운 흐름**: 명령어 실행 → 자동 로그인 → 결과 표시
3. **선택권 제공**: 원하지 않으면 거부 가능
4. **일관된 경험**: 모든 명령어에서 동일하게 동작
## 기술 구현
`src/cli/utils/session.ts`의 `requireAuth()` 함수:
```typescript
export async function requireAuth(): Promise<AuthManager> {
const loggedIn = await isLoggedIn();
if (loggedIn) {
return createAuthManager();
}
// Not logged in - prompt for login
const { shouldLogin } = await inquirer.prompt([
{
type: 'confirm',
name: 'shouldLogin',
message: 'Would you like to login now?',
default: true,
},
]);
if (!shouldLogin) {
process.exit(1);
}
// Prompt for credentials and perform login
// ...
}
```
## 테스트
```bash
# 1. 로그아웃
./bin/whatap-mxql logout
# 2. 로그인 없이 프로젝트 조회 시도
./bin/whatap-mxql projects
# → 자동으로 로그인 프롬프트 표시
# 3. 로그인 없이 쿼리 실행 시도
./bin/whatap-mxql query 27506 "CATEGORY app_counter"
# → 자동으로 로그인 프롬프트 표시
# 4. 대화형 모드
./bin/whatap-mxql interactive
# → 자동으로 로그인 프롬프트 표시
```
## 결론
이제 CLI를 처음 사용하는 사용자도 **어떤 명령어든 바로 실행**할 수 있으며, 필요한 경우 자동으로 로그인이 유도됩니다!
🎉 **훨씬 나은 사용자 경험!**