✅ 오늘 배운 것
오늘 팀원들과 모여서 스프린트 회의를 하면서 개발 진행상황을 공유하는데 이상한 점이 있었다.
바로 프론트 팀원이 개발 환경에서 앱을 실행했다가 바로 프로덕션 환경에서 실행했을 때, 전혀 다른 두 아이디로 유저 정보가 나오는 오류가 있었다.
이 문제가 신기했던 것은, 개발 환경 -> 프로덕션 환경으로 실행할 때에 나오는 유저 정보와 프로덕션 환경 -> 개발 환경으로 바꿔서 실행할 때에 나오는 유저 정보가 다르다는 거였다.
알고보니 이 문제의 원인은 다음과 같았다. (개발 환경 -> 프로덕션 환경의 경우)
1. 개발 환경에서 로그인하면서 발급된 액세스토큰을 AsyncStorage에 저장한다.
2. 프로덕션 환경으로 다시 앱을 실행했을 때 기존에 AsyncStorage에 저장된 액세스토큰이 있는지를 확인하게 된다.
3. 이때 1번에서 저장한 액세스토큰으로 접근을 시도한다.
여기서 1번에서 AsyncStorage에 저장한 토큰을 디코딩해보면 user_id 값이 저장되어 있었다. 그런데 개발 DB에 해당 user_id로 저장된 유저도 있었고, 프로덕션 DB에 해당 user_id로 저장된 유저도 모두 있었던 것이다.
그래서 두 케이스(개발->프로덕션, 프로덕션->개발)에서 나타나는 이메일이 달랐던 것이다.
그래서 생각해본 해결 방법으로는 다음과 같다.
1. 프로덕션과 개발 서버의 액세스토큰이 서로 사용 가능해서 생긴 문제이니, 액세스토큰이 호환되지 않도록 한다.
2. 스태프 계정은 단순 액세스토큰 및 구글로그인으로 접근 불가능하게 한다.
3. 프로덕션과 개발 서버가 같은 DB를 사용하게 하도록 한다.
4. 특수한 상황에서 생긴 문제이니 해결하지 않는다.
'개발 일기장 > SWM Onestep' 카테고리의 다른 글
20241003 TIL: 다국어 처리 지원하기 [진행중] (3) | 2024.10.03 |
---|---|
20241002 TIL: 사용자 문의 폼 적용하기 [끝] & 다국어 처리 지원하기 [진행중] (1) | 2024.10.02 |
20240930 TIL: 사용자 문의 폼 적용하기 [진행중] (0) | 2024.09.30 |
20240929 TIL: 사용자 문의 폼 만들기 [진행중] (0) | 2024.09.29 |
20240928 TIL: 비동기 뷰로 변환하기 [진행중] (1) | 2024.09.28 |