diff --git a/plans/250828_slack_integration_level3_plan.md b/plans/250828_slack_integration_level3_plan.md index fe78f01..96cbe4a 100644 --- a/plans/250828_slack_integration_level3_plan.md +++ b/plans/250828_slack_integration_level3_plan.md @@ -51,16 +51,22 @@ Frontend → auth-server → Slack OIDC → UUID 생성 → JWT 발급 Frontend(Slack 아이템 획득) → auth-server → OAuth 2.0 → 봇 토큰 저장 ``` -**Slack 패스포트 엔드포인트**: -- `GET /auth/slack/passport/` - 봇 설치 OAuth 시작 +**Slack 패스포트 엔드포인트** (2025-08-29 수정): +- `GET /auth/slack/passport/install?user_id={user_id}` - 봇 설치 OAuth 시작 + - 파일: `/home/admin/auth-server/app/providers/slack.py:104` + - 변경: workspace_id → user_id 파라미터 + - 처리: user_id로 workspace_members 테이블에서 workspace_id 조회 - `GET /auth/slack/passport/callback` - bot_token 저장 -- `GET /auth/slack/passport/status` - 아이템 상태 확인 +- `GET /auth/slack/passport/status/{workspace_id}` - 아이템 상태 확인 +- `DELETE /auth/slack/passport/uninstall/{workspace_id}` - 아이템 취소 - `POST /auth/slack/passport/activate` - 아이템 장착 - `POST /auth/slack/passport/deactivate` - 아이템 해제 -- `DELETE /auth/slack/passport/` - 아이템 취소 -**구현**: -1. OAuth 2.0 플로우 (**별도**: Sign in with Slack과 분리) +**구현** (2025-08-29 수정): +1. Frontend 호출: + - `src/components/skills-items-panel.tsx:handleSlackItemClick()` + - Gmail 패턴과 통일: user_id 파라미터 사용 +2. OAuth 2.0 플로우 (**별도**: Sign in with Slack과 분리) - Add to Slack 버튼: `https://slack.com/oauth/v2/authorize?...` - 콜백: `/auth/slack/passport/callback` 2. Bot Token Scopes: diff --git a/troubleshooting/250829_frontend_slack_login_mockup_completed.md b/troubleshooting/250829_frontend_slack_login_mockup_completed.md index e9fd98f..edd6882 100644 --- a/troubleshooting/250829_frontend_slack_login_mockup_completed.md +++ b/troubleshooting/250829_frontend_slack_login_mockup_completed.md @@ -25,16 +25,7 @@ Google OAuth와 Slack 로그인 모두 레벨과 무관하게 제공. Frontend ## 2. 백엔드 통합 계획 -상세 구현은 [250828_slack_integration_level3_plan.md](./250828_slack_integration_level3_plan.md) 참조 - -**핵심 요약**: -- Phase 1: Sign in with Slack (OIDC 로그인) - - `/auth/slack/login/`: OAuth URL 생성 및 리다이렉트 - - `/auth/slack/login/callback`: 토큰 교환, UUID 매핑, JWT 발급 -- Phase 2: Slack 패스포트 (레벨 3 아이템) - - `/auth/slack/passport/*`: Gmail과 동일한 패스포트 구조 - - 봇 설치, workspace 토큰 저장, 활성화/비활성화 -- Phase 3: 대화 동기화 (Slack ↔ Frontend) +백엔드 구현은 [250828_slack_integration_level3_plan.md](../plans/250828_slack_integration_level3_plan.md) 참조 --- @@ -108,9 +99,10 @@ state 생성 → sessionStorage 저장 → Slack OAuth URL 생성 ### auth-server 확인사항 - [x] Slack Client ID/Secret 설정 (.env에 존재) - [x] `/api/slack/mapping/{slack_id}` API 동작 확인 -- [ ] `/auth/slack/login/` 엔드포인트 (미구현) -- [ ] `/auth/slack/login/callback` 엔드포인트 (미구현) -- [ ] JWT 발급 로직 (미구현) +- [x] `/auth/slack/login/` 엔드포인트 (목업 구현 2025-08-29) +- [x] `/auth/slack/login/callback` 엔드포인트 (목업 구현) +- [x] `/auth/slack/passport/install?user_id={user_id}` (목업 구현, Gmail 패턴 통일) +- [ ] JWT 발급 로직 (TODO 구현 필요) ---