Example #1
0
 /**
  * oa登录
  * @param $ticket
  */
 public function action_oa($ticket)
 {
     if (TXApp::$base->person->exist()) {
         TXApp::$base->request->redirect('/');
     }
     if ($ticket) {
         $client = new \SoapClient($this->oa_wsdl_url);
         $res = $client->DecryptTicket(['encryptedTicket' => $ticket]);
         $rtx = $res->DecryptTicketResult->LoginName;
         if ($user = $this->userDAO->filter(['name' => $rtx])->find()) {
             Person::get($user['id'])->login();
         } else {
             $id = $this->userDAO->add(['name' => $rtx, 'registerTime' => time()]);
             Person::get($id)->login();
         }
         TXApp::$base->request->redirect('/');
     } else {
         $url = TXApp::$base->request->getBaseUrl(true) . '/login/oa';
         TXApp::$base->request->redirect("http://login.oa.com/modules/passport/signin.ashx?url={$url}");
     }
 }