Пример #1
0
 public function authAction()
 {
     $params = $this->_getAllParams();
     if (empty($params['uname']) || empty($params['upwd'])) {
         $this->forward('login');
         return;
     }
     //输入数据需要进行验证
     $loginname = addslashes($params['uname']);
     $password = md5(trim($params['upwd']));
     //生产COOKIE序列号
     $snlogin = md5($loginname . $password);
     $snlogin = substr($snlogin, 2, 9);
     $token = Token::create($snlogin);
     if ($token->is_logined()) {
         setcookie('tsn', $snlogin, -1, '/');
         $this->forward('index', 'company', 'index');
         return;
     }
     $adapter = new Zend_Auth_Adapter_DbTable(GlobalFactory::get_db());
     $adapter->setTableName(DBTables::USER)->setIdentityColumn('username')->setCredentialColumn('passwd')->setIdentity($loginname)->setCredential($password);
     //进行查询验证
     $auth = Zend_Auth::getInstance();
     $result = $auth->authenticate($adapter);
     //没通过验证就跳回到登录页面
     if (!$result->isValid()) {
         $this->forward('login');
         return;
     }
     //通过验证
     $res_obj = $adapter->getResultRowObject();
     //帐号被禁用
     if (0 != $res_obj->status) {
         $this->forward('login');
         return;
     }
     setcookie('tsn', $snlogin, -1, '/');
     $fields = array('sn' => $snlogin, 'uid' => $res_obj->id, 'uname' => $res_obj->username, 'nickname' => $res_obj->nickname);
     $token->register($fields);
     //跳转到默认首页
     $this->forward('index', 'company', 'index');
 }