[OAuth2] 기술적인 문제를 문구 하나로 해결한 네이버와 그냥 해결한 구글

patjuk·2023년 1월 4일
0

SPA 프로젝트를 진행하며 OAuth2로 로그인하기 기능을 구현할 때 외부 라이브러리를 사용하여 간단하게 구현했던 적이 있다.

Next-Auth라는 라이브러리를 사용했는데 클라이언트 API로 signIn, signOut 함수가 있다.

이 함수를 호출하면 .env 파일 안에 타 서비스 내 OAuth API 세팅 페이지의 Redirect URL, Website URL, client_id, client_secret 등을 복사해서 붙여놓으면 인증서버에 적절하게 쿼리 파라미터로 환경변수들을 넘겨주는 과정들을 처리하고, 요청 임시코드, 액세스토큰 등을 발급할 수 있었다.

그런데 한 브라우저에서 한번 인증을 마치고나면, signOut을 해도 위 첨부한 사진과 같은 페이지가 나타나지 않고 인증토큰을 새로 발급할 수 있었다.

한 서비스에서 계정을 2개 가지고 있다고 할 때, 이미 한번 로그인 해버리면 다른 계정으로 로그인하는 것이 내가 구현하는 서비스 안에서는 불가능했다. 이 문제를 해결하기 위해서는 탭을 열어 연동한 서비스에서 직접 로그아웃을 해야했다.

문제라고 생각하여 해결 방법을 찾아보았지만 찾지 못했는데 네이버는 이러한 문제를 다음과 같은 문구로 일단 입막음 해놓은 것 같았다.

공용 PC에서 사용하시는 경우 보안을 위해 서비스 이용 후 네이버에서도 반드시 로그아웃해 주세요.

네이버는 회원가입에 본인인증 절차가 최대 계정 수가 정해져 있지만 구글은 계정을 쉽게 만들 수 있다보니 개인이 다수 계정을 가지고 있는 경우가 적지 않을 것 같다. 그래서 그런지 구글은 OAuth 인증서버에서 계정 선택, 다른 계정으로 로그인하기 등과 같은 페이지를 제공해주는 것으로 이 문제를 해결한 듯 하다.

velog에서는 구글로 로그인하기를 누르면 아래과 같은 페이지로 리다이렉션 되는데 이 때문인지 velog에서는 google 계정 전환이 어렵다. 네이버에서 제공하는 페이지와 거의 동일하다.

그러나 Notion에서는 google로 로그인하기 버튼을 누르면 아래와 같은 창이 열린다.

+++
velog는 이 부분 고치는 것 어렵지 않을 것 같은데 고쳐줬으면 좋겠다...

profile
개발잡다. 신변잡기.

0개의 댓글