본문 바로가기

자바스크립트(jquery)

javascript 세션 유지 로그인 문제

반응형

서비스 중 정보를 등록할때 세션의 id 도 같이 등록하는 프로세스가 있다.

문제는 세션 유지시간이 초과되어 세션이 풀린 상태에서 등록을 시도하면 에러가 난다는 것 이다.

이 문제는 등록시 세션체크를 안 했었기에 일어난 문제였다. 등록시 세션을 체크해서 세션 정보가 없으면 알림을 띄워주면된다.

추가적으로 알람 이후 로그인 팝업창을 띄워서 기존 입력하던 정보를 유지하며 재로그인이 가능하도록 만들었다.

그런데 이 부분에서 문제가 발생한다.

팝업에서 정보를 등록하고 부모창으로 데이터를 보내줘야하는데 세션이 풀렸다가 다시 로그인했던 문제인지 opener가 잡히지 않는 상황이다.

왜 이런지 생각해봐야 되는 부분은 2군데인데

첫번째로는 테스트를 위해 부모창에 있는 로그아웃 버튼을 눌러서 부모창이 원래 페이지가 아닌 다른 페이지로 이동되었기 때문에?

두번째로는 세션을 destory 해버리면 opener 가 같이 사라진다?

첫번째의 경우에는 실제로 유저가 그럴일이 드물기에 큰 문제가 없는 상황이다.

두번째경우에는 좀 복잡해질듯 하다.

해결 후 해결방법을 기록해두는것이 좋겠다.

-------------------------------------------------------------

비슷한 환경을 만들어 테스트 해보니 첫번째 경우였다.

세션은 있든말든 상관없이 팝업을 호출한 부모창이 다른 페이지로 이동되면 해당 부모창의 함수는 호출 할 수 없다.(그리고 다시 원래 부모창 페이지로 오면 함수 호출이 가능해진다)

어찌보면 당연한건데 하필 세션이 삭제되는 상황이랑 겹쳐서 착각했다.

괜히 어렵게 생각하지 말자