微信掃碼登錄驗證PHP代碼(不用開放平臺)

 public function wxqrcheckAction(){
        if(g('ajaxchk')!=''){ //前端頁面顯示二維碼並AJAX定時檢查已否已掃碼驗證

            if(isset($_SESSION['wxqrchk'])){
                $msg='';
                if(isset($_SESSION['user'])){
                    $msg=$_SESSION['user']['username'];
                }
                $this->ajaxReturn(array('code'=>1,'username'=>$msg));
            }else{
                $this->ajaxReturn(array('code'=>0));
            }

            die();

        }else if(g('wxauth')!=''){ //掃碼後訪問
            $_SESSION['chksid']=g('wxauth');
            WXAuthController::Auth('/Public/wxqrcheck/redirect/'.g('wxauth'),1);
            die("wxauth end...");
        }else if(g('redirect')!=''){
            $openid=WXAuthController::GetOpenid(); //獲取微信OPENID
            $user=ORM::for_table('sys_user')->where('openid',$openid)->find_one();
            if($user){
                $chksid=$_SESSION['chksid'];
                session_destroy(); //thinkphp等開始已經session_start了
                session_id($chksid);
                session_start();//這個函數必須在session_id()之後

                $_SESSION['user']=$user->as_array();
                if($_SESSION['user']['username']=='admin' || $_SESSION['user']['username']=='adminisrator'){
                    $_SESSION['isadmin']=true;
                }else{
                    unset( $_SESSION['isadmin']);
                }
                $_SESSION['islogin']=true;
                $_SESSION['wxqrchk']=true;
                echo "掃碼登錄成功<br/>";

            }else{
                echo "沒有這個用戶 openid:".$openid;
            }


            die("手機端驗證完成");
        }else{
            $sessionid=session_id();
            $qrurl="http://XXXXX.COM/Public/wxqrcheck/wxauth/".$sessionid;
            $this->assign('qrurl',$qrurl);
            $this->display();
        }



    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章