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


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

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

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

있는지 궁금합니다.

  • 2016년 09월 05일에 작성됨

조회수 102


1 답변


좋아요
4
싫어요
채택취소하기

간단합니다. 로그인전 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같은 공격을 시도할수도 있으니 필터링을 해주는것도 좋습니다

  • 2016년 09월 05일에 작성됨
    웹을 좋아함

  • 답변 감사합니다!    PuppyRush   2016.9.5 16:07     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close