Provider
인증과 동의 화면을 담당한다.
OAuth는 사용자의 비밀번호를 서비스가 직접 받지 않고, 제공자가 발급한 코드와 사용자 프로필로 내부 로그인 상태를 만든다.
사용자가 Google 같은 제공자 로그인 화면으로 이동한다.
제공자가 서비스에 전달할 프로필 범위를 확인한다.
제공자가 code를 NestJS 콜백 주소로 보낸다.
코드를 토큰으로 교환하고 내부 사용자와 연결한다.
인증과 동의 화면을 담당한다.
콜백 검증과 사용자 매핑을 담당한다.
최종 서비스 토큰을 받아 이후 API에 사용한다.