2024-01-12
오늘의 작업 내용
- 디스코드 OAuth2 인증을 처리하기 위한 컨트롤러 구현
- 인증 후 사용자 정보를 가져오고, 해당 사용자를 서버에 추가하는 로직을 서비스에 추가.
- 디스코드 API의 데이터 구조를 반영하는 TypeScript 인터페이스를 정의하고 적용.
진행 상황
- 사용자 인증 부분인 디스코드를 통한 로그인 구현 및 테스트 완료.
- 인증을 마친 사용자를 디스코드 내 특정 서버에 추가하는 로직 구현 및 테스트 완료.
- 세션에 엑세스 토큰 및 유저의 고유 디스코드 ID를 저장하는 로직 구현 및 테스트 완료.
겪은 문제 및 해결책
1. 디스코드 OAuth2에서 리다이렉션 URL이 잘못되었다는 문제.
- 서버의 포트가 3000인 줄 알았으나, 5001이어서 발생했던 문제.
2. 디스코드 사용자 ID를 세션에 저장하는 과정에서 타입 불일치 문제.
DiscordUser
인터페이스와 User
엔티티 간에 일치하지 않는 필드 이름을 조정하여 문제 해결.
3. swagger에서 디스코드 인증 관련 API가 작동하지 않는 문제.
- 웹사이트에선 작동하나, swagger를 통한 테스트만 CORS 에러가 발생함.
- 디스코드 API 정책의 문제인거 같아 마땅한 해결 방안을 찾지 못하고, 임시로 html을 구현하여 테스트를 진행함.
내일의 계획
- 디스코드 봇 생성 관련 로직들 찾아보기.
- 주말동안 잘 쉬기.
회고
- 외부 API를 가져와서 쓰는 건 매번 온갖 에러를 동반했는데, 이제 슬슬 적응을 한 건지 아니면 디스코드 API가 친절한건지 에러가 별로 안 떠서 좋았음.
참고 자료