JHSH
70
2021-12-16 12:33:02
4
253

single page application에서 redirection 관련 궁금증


안녕하세요. Oauth를 사용해서 access token을 받아오는 과정 중에 궁금증이 생겨 질문 드립니다.

사용자가 리소스서버(구글, 카카오 등)에서 로그인 후 정보제공에 동의버튼을 누르면 리소스 서버에서 클라이언트(제가 개발하는 웹/앱)에 authorization code가 포함된 uri를 redirection을 해주고 있습니다.

이 때, 클라이언트가 서버에서 웹페이지를 렌더링 해주는 시스템이면 redirect_url을 웹페이지로 그냥 렌더링 하고 서버에서는 authorization code를 access token을 받는 용도로 사용하면 될 것 같은데

만약 클라이언트 시스템이 single page application이라면 redirection을 어떤 식으로 해야 할지 고민입니다.

리소스서버에서 클라이언트쪽 업무서버로 redirection을 해주면 authorization code를 받게는 되는데 그 이후에 웹페이지를 렌더링 한다거나 웹페이지로 로그인이 성공했다 실패했다 정도의 응답정도는 줘야할 것 같은데 이것을 SPA에서는 어떤식으로 구현해야 할까요??

고견 부탁드립니다. 감사합니다.

0
  • 답변 4

  • 꿈의연봉1800
    455
    2021-12-16 12:56:01
    해당 주소에 맞는 SPA 라우트를 작성하고 거기서 URL 읽어서 나머지 처리를 하는 방법이 있고
    API 서버를 콜백으로 주고 거기서 처리하고 응답으로 리디렉트 주는 방법이 있음
  • JHSH
    70
    2021-12-16 13:14:31

    꿈의연봉1800 답변감사드립니다.

    혹시 두 번째 방법을 좀 더 자세히 설명 부탁 드려도 될까요? ㅠㅠ

  • 꿈의연봉1800
    455
    2021-12-16 13:20:32
    OAUTH등록하실때 콜백 적는 곳에 SPA앱의 주소 대신 서버 엔드포인트를 적고
    서버에서 처리 후에 응답을 3xx으로 SPA에 리디렉트
  • JHSH
    70
    2021-12-16 14:03:20

    꿈의연봉1800 답변 감사합니다.

    현재 말씀하신대로 콜백 적는 곳에 서버 엔드포인트를 적은 상태입니다.

    그래서 서버쪽에서 authorization code를 받고 이걸로 access token을 받는거는 되는데

    말씀하신 '서버에서 처리 후에 응답을 3xx으로 SPA에 리디렉트' 이 부분이 문제인데... 서버에서 SPA로 리디렉트를 해주려면 SPA에서 서버로 먼저 request를 날려야 하지 않나요..??

    SPA에서 서버로 request를 하지 않았는데 어떻게 SPA앱으로 응답을 할 수 있을까요..??

  • 로그인을 하시면 답변을 등록할 수 있습니다.