페이스북 로그인 기능을 추가 구현하는 과정에서 삽질한 과정과 해결 방법입니다.
일단 사이트 구성을 간략하게 보여드리면 다음과 같습니다.

페이스북 인증을 구현하기 위해서는 반드시 https 만 가능 하다는 건 알고 있는 상황이었고, 운영 중인 상황에서 Server 와 Client 도메인도 https 로 운영하는 중이라서 별 신경을 쓰지 않았습니다.
그래서 로컬 디버깅 환경에서 테스트를 한 뒤 배포를 하였고, 배포 후 확인해보니 페이스북으로 인증 요청을 하는 과정에서 http 로 요청한다는 오류가 나와서 왜(?) 라는 상황이 되었습니다.
그래서 어디서 문제가 발생했는지 확인하기 위해 소스 코드도 살펴보고 페이스북 등록된 정보도 확인했지만 원인을 알 수가 없었습니다.
그러다 운영 환경에 대한 확인을 하게 되었고 Docker 에서 asp.net 인증서 관련 문제로 부득이하게 http 로 운영 중이라는 사실이 다시 떠올랐습니다.
그래서 docker 상에서는 http 로 운영을 하고 NGINX 의 REVERSE PROXY 로 외부에서 https 도메인으로 접속해서 운영하는 상태였습니다.
그래서 해결책을 찾던 중 MSDN 의 다음 링크에서 해답을 찾을 수 있었습니다.
서버 구동 시 다음처럼 요청 스키마를 https 로 강제하는 방법입니다.
app.Use((context, next) =>
{
context.Request.Scheme = "https";
return next(context);
});
Docker 환경을 포기할 수 없고, 유료 인증서도 부담되는 상황이라 부득이하게 http 로 운영하느라 생긴 해프닝이었네요.
현재까지는 무탈하게 잘 운영 중입니다. 더 좋은 해결 방법을 찾게 되면 차후에 다시 업데이트 할 예정입니다.
이상 삽질기 였습니다.
0 Comments