ThinkPHP의 도메인 간 공유 세션

1361 단어 ThinkPHP
한동안 의 연구 를 거쳐 마침내 돌파구 를 이루었다
두 웹 사이트:
think.local
think2.local
주요 원리는 다음과 같습니다.
1、think에서 통과.local 실행 js 스크립트,think2.local 인터페이스, 쿠키의 PHPSESSID를 전달합니다
2, 수정 think2.local 쿠키의 PHPSESSID 및 think.local 일치,think2.local에서think와 함께 사용할 수 있습니다.local 같은 세션에 접근
3. 보충: 같은 서버에서 두 사이트가 사용하는session 폴더는 php 기본값입니다
기본 코드:
think.local 섹션:
//      
    public function test(){
        session('uid',111);
        $session_id=session_id();
        //    
        $gotourl='';
        //echo htmlspecialchars($gotourl);exit;
        echo $gotourl;
        echo 'ok';exit;
    }
think2.local 부분
//     
    public function Index(){
        $token=I('get.token');
        if($token!='thinkphp'){
            echo 'wrong';exit;
        }else{
            //      
            $session_id=I('get.session_id');
            //$session_id='mh23hdn3h34j2efpno1k95bhm6';
            cookie('PHPSESSID',$session_id);
        }
    }

think2.local의 임의 작업 중dump(session();Think와 함께 제공됩니다.local의 일치한session값을 사용하여 공유session을 실현합니다.
PS: 도메인 이름 간에 로그인할 수 있습니다. 다른 서버라면session 정보를 데이터베이스/Redis/Memcached에 저장하는 것을 고려할 수 있습니다.

좋은 웹페이지 즐겨찾기