CI 묻고 답하기

제목 페이스북 계정으로 로그인 할 경우 세션 데이터 문제
글쓴이 SMINT 작성시각 2011/12/05 23:43:12
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 26878   RSS
현재 사이트에서 페이스북 계정으로 로그인하는 기능을 구현했는데요,
로그인 했을 경우 사용자 세션 데이터 추가가 안되고 있습니다.
즉 db->set_userdata가 전혀 안되고 있어요.

http://rizwaniqbal.com/codeigniter-sessions-suck/

해외에도 유사한 사례가 있어서 구글링을 해봤는데, 해결하기가 쉽지 않네요.
(위에서 언급한 config 수정은 모두 해봤습니다 ㅠ)

현재 CI 2.0.3을 사용하고 있습니다.

혹시 관련된 경험 있으신 분 계신가요? ㅠ
 
 다음글 sparks 라는 게 뭔가요? (3)
 이전글 서로다른 난수를 생성하려고 합니다 (5)

댓글

세콩 / 2011/12/06 09:23:35 / 추천 0
 저와 같은 경우셨는지는 모르겠지만.. 저는

config 값에서 session사용시 DB를 쓰겠다는 설정을 안해줘서 세션 저장이 안되는 경우가있었어요
$config['sess_use_database'] = TRUE;
application / config 에서 이값설정해주셨는지 확인해보세요

오늘도 즐거운 코딩 되시구여~~
Lectom / 2011/12/13 11:47:04 / 추천 0
 흠, 저같은 경우는 좀 편법이긴 한데, 페이스북에서 정보를 다시 받아서 재 세팅하는 방법으로 하고 있습니다. 이 경우에도, 새션 아이디 생성같은건 안되긴 하는데요. 

$newdata = array(
        'user_id'  => $item->id,
        'email'    => $item->email,
        'logged_in' => TRUE,
        'user_name'=> $item->username,
        'fb_id'=> $item->fb_id,
        'fb_token_time'=> time()+$fb_token_exist-10,
        'fb_token'=>$access_token );
      if ($item->tweet_oauth_token) {
       $tweet_token=array( 'access_key' => $item->tweet_oauth_token, 'access_secret' => $item->tweet_oauth_secret);
       $newdata["twitter_oauth_tokens"]=$tweet_token;
      }
      $this->session->set_userdata($newdata);
그니까 로직으로 따지면. 페이스북 로그인 요청 -> 페이스북 아이디값 확인 -> 회원 DB와 비교 -> 일치할 경우, 해당 값으로 세션 재 생성. 이 되겠습니다...
SMINT / 2011/12/13 15:04:15 / 추천 0
세콩님//
그렇게 셋팅을 해놨었는데 안되더라고요 ㅠ

Lectom님//
아, 그런 방법이 있었군요 ㅋ
저희는 결국 또다른 편법으로 문제를 해결했습니다 ㅠ 흙흙
Lectom / 2011/12/13 19:43:07 / 추천 0
 SMINT 님 //
 오호홋... 어떻한 방법이 있나요? +_+..... 편법.... ㅋ