슬랙 알림 시나리오users.list API로 사용자 목록을 가져오는건 가능하다.
- 그런데, 가입자가 다른 사람의 슬랙 ID을 선택해놓고 등록하려는 시도를 하는건 어떻게해야하지?
- 본인 인증 메시지를 보내서 인증 후에 등록하도록 해야하나?
- 아하. 어차피 슬랙 토큰도 숨겨야하니깐 슬랙 관련 처리 및 본인인증을 처리하는 node.js 서버를 하나 만들까?
슬랙 등록 유저 시나리오
- 환경설정에서 슬랙 등록 버튼을 누른다.
- 슬랙 등록 페이지에서 슬랙 사용자 검색 Input에 검색할 때마다 노드 서버에서 필터링된 사용자 목록 정보를 가져온다.
- 슬랙 사용자를 정확하게 선택하면 인증번호 발송 버튼을 누른다.
- 해당 슬랙 계정의 DM으로 6자리의 인증번호가 발송된다.
- 사용자는 웹에서 3분 이내에 인증 번호를 입력해야 한다.
- 인증 성공시 SNS 서버에 슬랙 ID 필드를 등록한다.
위과정을 거쳐 인증을 한 사용자들 한에서만 편지가 전송되었을 때 슬랙 DM으로 알림이 옴

백엔드 서버
백엔드 서버는 모든 슬랙 사용자 정보를 파일 데이터로 캐싱하고 있다가 사용자의 검색 요청이 클라이언트로부터 들어오면 그냥 캐싱된 데이터에서 필터링한 데이터만 뱉어준다. 캐싱 기간은 1일정도로 잡자. (1일 초과시엔 새롭게 슬랙 API 요청이 발생하고 파일 데이터로 저장함)노드 서버를 하나 만든다면..새로운 레포지토리를 파서 만들까?아니면 모노레포 형태로 만들까? (현재 디렉토리에서 /slack-server, /client 로 나뉘는 느낌)
필요한 추가 정보
- 백엔드 교육생인지 프론트엔드 교육생인지 확인하는 토글 버튼
→ 교육생별로 슬랙 채널 api url이 다르기 때문
- 편지 전송시 슬랙알림 api 호출은 서버에서
슬랙 인증 Confirmation 고려사항
URL /setting/slack/confirmation 에 들어왔을 때 처리해야 할 로직
- URL에 query로 붙어온 token의 데이터로 SNS 서버에 GET /auth-check 요청.
- 성공시 세션스토리지에 토큰 저장.
- 실패시 404 페이지로 이동.
- 로딩중에는 처리중입니다... 라는 느낌의 화면 보여주기
- 로딩할때 이루어져야함 ⇒ Suspense 이용
- 일회용 token params를 다시 슬랙 서버에 던져주고 response로 accesstoken을 받는다.
이때 ⇒ 세션스토리지에 token 넣기
- GET/auth-check 다시 요청
- 성공시 confirmation page 나오기
실패시 404페이지