클라이언트 환경에서 안전한 소셜 로그인을 구현하는 핵심 메커니즘, OIDC와 PKCE 알아보기 - 재그지그의 개발 블로그
재그지그의 개발 블로그
- Facebook 로그인 예제를 통해 OIDC와 PKCE를 활용한 안전한 인증 코드 교환 과정에 대해 알아봅니다.
---
최근 프로젝트에서 페이스북 소셜 로그인 기능을 구현하는 업무를 맡게 되었습니다. 기존에는 구글과 애플 로그인이 이미 구현되어 있었고, 그래서 저는 페이스북 역시 동일한 방식으로 구현할 수 있을 것이라 예상했죠.
하지만 페이스북 공식 문서를 확인해보니, 예상과 달리 클라이언트에서 추가적인 보안 조치를 적용해야만 액세스 토큰을 얻을 수 있다는 점을 알게 되었습니다. 바로 PKCE가 적용된 OIDC 인증 방식이 필요하다는 것이었습니다.
물론 클라이언트에서 추가 인증 과정을 생략하고 액세스 토큰을 받아오는 방법도 있었지만, 이는 보안상 취약점이 있어 권장되지 않는 방식이었습니다. 그래서 가능하다면 PKCE가 적용된 OIDC 인증 방식을 써야 한다는 점을 알게 되었죠.
사실 OAuth의 전체적인 흐름에 대해 잘 알지 못했던 터라, 낯선 용어들을 접하니 막막함이 느껴지더라구요. 그렇지만 회사 업무인 만큼 팀 동료들에게도 이 개념을 잘 설명할 수 있어야 했기에 학습에 대한 동기부여로도 이어졌습니다. 그래서 열심히 자료를 찾아보며 해당 개념을 이해하려고 노력했고, 결과적으로 기능 구현과 코드 리뷰까지 성공적으로 완료할 수 있었습니다.
그래서 오늘은 제가 직접 경험한 페이스북 로그인 구현 사례를 바탕으로, OIDC와 PKCE를 활용해 클라이언트 측에서 어떻게 안전하게 사용자 인증을 구현할 수 있는지 알아보고자 합니다.
https://wormwlrm.github.io/2025/07/31/OIDC-with-PKCE.html
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 7월 31일 오후 5:29