Exemple #1
0
 public function view_islogin()
 {
     $user = !empty($_GET['user']) ? $_GET['user'] : '';
     $sign = $_GET['sign'];
     $domain = $_GET['domain'];
     $redirect = isset($_GET['redirect']) ? $_GET['redirect'] : 0;
     $return = isset($_GET['return']) ? urldecode($_GET['return']) : '';
     require_once 'PassportModel.class.php';
     if ($redirect) {
         if ($this->_verifySign($domain, md5($user . $domain), $sign)) {
             $userinfo = authenticate();
             if ($userinfo) {
                 if (strpos($return, '?') !== false) {
                     $return .= '&ticket=' . PassportModel::packTicket($userinfo['ticket'], $user);
                 } else {
                     $return .= '?ticket=' . PassportModel::packTicket($userinfo['ticket'], $user);
                 }
                 //echo $return;die;
                 header("Location:" . $return);
             } else {
                 header("Location:" . $GLOBALS["gSiteInfo"]['www_site_url'] . "/index.php?action=passport&view=login&forward=" . urlencode($return));
             }
         } else {
             die("Signature Invalid!");
         }
     } else {
         if ($this->_verifySign($domain, md5($user . $domain), $sign)) {
             $pass = new PassportModel();
             $ticket = $pass->getTicketByUser($user);
             if ($ticket) {
                 $msg['s'] = 200;
                 $msg['m'] = "success!";
                 $msg['d'] = PassportModel::packTicket($ticket, $user);
             } else {
                 $msg['s'] = 300;
                 $msg['m'] = "Not Login!";
                 $msg['d'] = $GLOBALS["gSiteInfo"]['www_site_url'] . "/index.php?action=passport&view=login";
             }
         } else {
             $msg['s'] = 400;
             $msg['m'] = "Signature Invalid!";
             $msg['d'] = '';
         }
         json_output($msg);
     }
 }