[TIL] 01.18 페이스북 로그인 문제

2021. 1. 18. 22:28TIL

페이스북 로그인에 대해서 문제가 생겨서 확인을 해보았다. 

"사용할 수 없는 기능: 현재 이 앱에서 Facebook 로그인을 사용할 수 없습니다. " 라는 에러 메시지를 보여 주었다.

우리 프로젝트에서 페이스북 로그인을 사용하는 방식은 로그인 플로 직접 빌드 방법이고 로직 상에서 문제는 발견하지 못하였다. 

 

에러 메시지와 백엔드에서 찍히는 에러메시지를 확인해본 결과 페이스북 인증 서비스의 기간 만료가 원인인 것으로 파악이되었다. 

하지만 현재 사용하고 있는 페이스북 인증 키 를 가지고 있는 아이디가 개인 계정이였고 그 계정의 주인이신 분은 현재 회사에 계시지 않아 이 참에 회사용 계정을 파서 해당 계정의 인증 키를 적용하기로 하였다. 

 

그래서 새로 계정을 만들어 적용을 하려고 하였는데 여기서 또 문제가 발생 하였다. 새로운 인증키로 수정을 하고 배포를 진행을 하였는데 인증키의 값이 바뀌지 않는 것이였다. 인증 키 값은 환경변수로 주입해고 있었는데 빌드 파일에 남아 있는 캐시가 문제의 원인으로 생각이 되었다.

 

배포시 pm2 를 사용하여 배포를 진행 하는데 pm2 reload 명령어를 사용하고 있고 배포시 pm2의 흐름을 보면 앱을 멈추고 kill을 한 다음 다시 재실행 하는 식의 흐름을 가지고 있었다. pm2 kill을 하면 캐시를 전부 제거 한다고 한다. 확실히 server.js 파일에서 console 을 찍었을 경우 환경변수는 바껴서 잘 나왔지만 클라이언트 파일에서 찍었을 경우에는 값이 변경이 되어 있지 않았다. 

 

그래서 파일 자체에 console을 찍어보며 환경 변수 값이 잘 나오는지 확인 하던중 페이스북 인증 키를 받는 파일에서 console 을 찍고 나서 다시 빌드를 하고 페이지를 로드 하니 값이 바껴 있었다. 

정확하진 않지만 나의 추측으론 빌드를 할 경우 환경변수 값이 해당 파일과 합쳐져서 캐시로 남아 있는게 아닐까 ? 라는 생각이 들었다. 그래서 해당 파일이 변경사항이 없으면 기존 주입된 환경 변수의 값을 그대로 가지고 있었던 것이였고 console을 찍었을 때는 값이 변경되어 새롭게 빌드를 하며 변경된 환경변수 값을 가져 온게 아닐까란 생각이 들었다. 

 

결국 빌드 폴더에서 캐시 폴더 부분만 삭제하고 다시 빌드를 해주어 문제를 해결 하였다. 완벽한 해결법은 아니였지만 곧 aws 로 이전을 하면서 환경 변수는 따로 관리하여 이미지로 주입 할 예정이라서 우선은 이렇게 처리하자고 백엔드 분과 결정을 했다.