/** * 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}"); } }