로그인을 하고 나서 원래페이지로 돌아가려면 어떤 기법을 쓰는게 제일 좋나요?

조회수 3029회

예를들어 웹 서비스를 위해 페이지를 돌아다니다가 로그인을 요구하는 페이지에 진입한다면

로그인을 하고 원래 페이지로 돌아가야 할 겁니다.

위의 상황을 위한 처리 기법이랄게 따로 있는지도 모르겠지만 보편적으로 많이 쓰이는 방식이 어떤게

있는지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 간단합니다. 로그인전 url(레퍼러)을 기억해놓고 로그인 성공시 그 url 로 redirect 하시면 됩니다.

    방법은 여러가진데 보통 쓰는방법은

    url에 같이 넘긴다

    로그인이 필요한시점에서 로그인을 안했다면 login?next_url=post/write 이런식으로 보냅니다

    그리고 로그인성공시 쿼리스트링 next_url 을 읽어와서 redirect 하는 방법입니다

    혹은 세션이나 input에 저장한다

    위랑 별다를게없습니다. 이제 그 레퍼러를 세션이나 input type hidden 이런데 기록하는거죠.

    그럼 서버에서 로그인 성공시 그걸 읽어와서 그냥 redirect만 시키면 됩니다

    <input type="hidden" name="next_url" value="{서버언어로 레퍼러 받아오기}">
    
    // redirect전 세션에 현재 url 저장
    
    // 그다음 로그인 요청시
    if (로그인성공시) {
        redirect(세션에 저장한 url);
    }
    

    이렇게 하시면 됩니다.

    몇가지 수정해주면 좋을부분은 가져온 url그대로를 redirect를 시키면 csrf같은 공격을 시도할수도 있으니 필터링을 해주는것도 좋습니다

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)