V2 버전 간편 로그인 리다이렉트 주소 설정

v2 sdk 버전에서 간편 로그인 Kakao.Auth.authorize 실행 시에 redirectUri을 입력하는데, 반드시 나의 어플리케이션에서 등록한 url 과 모두 일치하여야 가능할까요?

만약에 https://주소.com 까지만 등록을 하고 해당 주소로 시작하는 모든 주소를 허용하는 방법은 없을까요?

반드시 모두 일치해야합니다. (뿐만아니라 인가코드요청과 액세스토큰 발급간 설정하는 redirect uri도 모두 일치해야합니다.)
이는 사이트내 파일 전송등의 방법으로 리다이렉트 URI를 가로채는 해킹시도를 방어하는 목적이기도 합니다.

페이지 분기가 필요하시다면 state 파라메터로 구분하여 처리하시면 좋을 것같습니다.


또다른 대안으로 주소뒤에 path는 고정하고 와일드카드 서브도메인으로 설정하여 다양한 서브도메인이 작동하도록 구성할 수도 있습니다.

https://*.주소.com/path/redirecturi

혹시 state 파라메터 라는 말씀이 response 로오는 데이터에서 state라는 데이터를 이용하라는 말씀이신지요?


저는 https://주소.com 로 시작하는 모든 페이지에서 로그인 후 다시 같은 페이지로 돌아오는 기능을 생각하고 있습니다.

주소 뒤에 많은 파라미터나 쿼리스트링이 있을수 있기 때문에,

모든 페이지를 리다이렉트에 등록할 수 없어서 어떻게 처리할 수 있는 방법이 없을까 문의드립니다! ㅎㅎ

(1) 카카오 로그인 시, 인가코드요청에 state파라메터를 설정하면 리다이렉트 URI에서 state파라메터를 그대로 받을 수 있습니다.

(2) https://주소.com/A페이지?p=1&p=2 에서 로그인 할때 state파라메터에 돌아갈 주소를 설정하고 리다이렉트 URI에서 액세스 토큰 발급 및 회원가입/로그인 처리 후, state파라메터로 받은 주소로 돌아가면 됩니다.

  • 앞서 설명드린 것처럼 등록되지 않은 redirect uri 처리 기능은 제공하지 않고 있어요. (OAuth2 로그인 표준에 부합하지 않습니다.)

결국에는

로그인 시 state파라미터에 현 주소 담아서 요청 → 리다이렉트 uri에서 로그인 및 토큰 처리 → state의 현주소로 이동

  • 등록한 리다이렉트 uri에서 로그인 처리 후에 따로 원하는 페이지로 이동

보안을 위해서 이런 과정이어야 한다는 말씀이시군요

네, 맞습니다.

코드로 보면 어떤 페이지에서 접근하던 state value로 이동하는 로직 하나만 있으면되므로

페이지+파라메터별 리다이렉트 URI를 구성하고 동일한 리다이렉트 URI를 액세스 토큰 발급에 설정하는 것보다 간결할 것으로 보입니다.

많은 도움 주셔서 감사합니다!

1개의 좋아요