CI 묻고 답하기

제목 ajax 로그인[tank_auth]시 세션 사용자 데이터 사라짐
글쓴이 정우파파 작성시각 2012/02/16 16:35:08
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 25423   RSS
안녕하세요.
수고들 많으십니다.

현재 ci2.1.0+hmbv+tankauth의 조합을 테스트 중입니다.
질문의 요지는 로그인을 ajax로 처리할시 세션의 용자 데이터(user_data) 값이 사라지는 부분입니다.

ajax 미사용시는 사용자 데이터가 계속 남아 있는것을 확인한 상태입니다.

참고로 환경설정 값 일부분 입니다.
$config['global_xss_filtering'] = TRUE;

$config['csrf_protection'] = TRUE;

여러분의 응원 부탁 드립니다.
 다음글 파라미터가 없을때 (2)
 이전글 header 관련 오류.. (4)

댓글

타로 / 2012/02/17 09:17:11 / 추천 0
 controllers에서

$csrf_token_name = $this->security->get_csrf_token_name());
$csrf_hash = $this->security->get_csrf_hash());

폼에서
 
<input type="hidden" name="<?=$csrf_token_name;?>" value="<?=$csrf_hash;?>" />

이해되시죠? ^^
정우파파 / 2012/02/17 11:58:15 / 추천 0
답변 감사드립니다.

현재 form_open 함수를 사용하여  csrf_token이 아래와 같이 자동으로 생성되어 집니다.
<input type="hidden" name="csrf_test_name" value="1d2bf911c0078fc95bc1eef328fae026">
ajax를 이용해 서브밋을 할때 해당 값도 전송되어 집니다.

1.첫번째 로그인시는 user_data의 값은 변경만 됩니다.
2.form_validate에 의해 검증이 통과안된 후 두번째 로그인시 user_data captcha 값이 사라집니다.

읽어 주셔서 감사합니다.

criuce / 2012/05/02 11:06:47 / 추천 0
안녕하세요.
저도 최근에 관련 문제로 골머리를 썩다가 해외 검색을 통해 알게 된 내용인데요, ajax 통신시에 session 데이타가 사라지는 문제가 있답니다.
해결 방법은 ajax 통신시에 full domain을 포함한 url을 사용하시면 됩니다.