카카오톡, 구글, 애플 회원가입을 OIDC 프로토콜을 사용한 이유


기존 방식에 대한 고찰

기존 웹 프론트와 OAuth2 소셜 로그인 일반적인 flow

image.png

원래 웹 프론트와 소셜 로그인 통신에 일반적인 방법은 다음과 같다.

  1. client 에서 사용자가 인증후 Authroization code를 받는다.
  2. Authorization code를 백엔드 서버에 위임한다.
  3. Authroization code로 백엔드 서버는 Access token을 발급 받는다.
  4. Access token으로 Resource 에 회원 정보를 받는다.

이때 Authorization code는 프론트에서 받든지 Server에서 받든지 상관없다.

노출되어도 상관없다는 뜻인데 이유는 OAuth2 스펙인 PKCE 보안으로인해 authorization code를 다른데서 사용할 수 없다.

하지만 IOS 에서는 redirect url을 설정할 수 없고 SDK로 token을 받는다고 하더라도 Access token과 같이 받아온다는 글이 있었음 → 확실하지 않음

Access token을 프론트에서 백엔드를 넘겨주는 방식?

그럼 ios에서 Access token을 백으로 넘겨주는 방식을 생각할 수 있다