* adjust for certify.

This commit is contained in:
wangyidong
2016-12-27 15:33:26 +08:00
parent 0ce192ff38
commit cdbf4c6dcf
7 changed files with 219 additions and 82 deletions
+66 -12
View File
@@ -109,7 +109,8 @@ class adminModel extends model
*/
public function registerByAPI()
{
$apiURL = 'http://www.zentao.net/user-register.json?bind=yes&HTTP_X_REQUESTED_WITH=XMLHttpRequest';
$apiConfig = $this->getApiConfig();
$apiURL = $this->config->admin->apiRoot . "/user-apiRegister.json?HTTP_X_REQUESTED_WITH=XMLHttpRequest&{$apiConfig->sessionVar}={$apiConfig->sessionID}";
return $this->postAPI($apiURL, $_POST);
}
@@ -121,17 +122,27 @@ class adminModel extends model
*/
public function bindByAPI()
{
$apiURL = 'http://www.zentao.net/user-bindChanzhi.json?HTTP_X_REQUESTED_WITH=XMLHttpRequest';
$apiConfig = $this->getApiConfig();
$apiURL = $this->config->admin->apiRoot . "/user-bindChanzhi.json?HTTP_X_REQUESTED_WITH=XMLHttpRequest&{$apiConfig->sessionVar}={$apiConfig->sessionID}";
return $this->postAPI($apiURL, $_POST);
}
/**
* Get secret key.
*
* @access public
* @return object
*/
public function getSecretKey()
{
//$apiURL = "http://www.zentao.net/user-secretKey.json";
$apiURL = "http://www.zentao.cn/user-secretKey.json";
$apiConfig = $this->getApiConfig();
$apiURL = $this->config->admin->apiRoot . "/user-secretKey.json";
$params['u'] = $this->config->global->community;
$params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
$params[$apiConfig->sessionVar] = $apiConfig->sessionID;
$params['k'] = $this->getSignature($params);
$this->agent->cookies['lang'] = $this->cookie->lang;
$this->agent->fetch($apiURL . '?' . http_build_query($params));
$result = $this->agent->results;
@@ -139,32 +150,56 @@ class adminModel extends model
return $result;
}
/**
* Send code by API.
*
* @param string $type
* @access public
* @return string
*/
public function sendCodeByAPI($type)
{
$module = $type == 'mobile' ? 'sms' : 'mail';
//$apiURL = "http://www.zentao.net/{$module}-apiSendCode.json";
$apiURL = "http://www.zentao.cn/{$module}-apiSendCode.json";
$params['u'] = $this->config->global->community;
$apiConfig = $this->getApiConfig();
$module = $type == 'mobile' ? 'sms' : 'mail';
$apiURL = $this->config->admin->apiRoot . "/{$module}-apiSendCode.json";
$params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
$params['k'] = $this->getSignature($params);
$params[$apiConfig->sessionVar] = $apiConfig->sessionID;
if(isset($this->config->global->community) and $this->config->global->community != 'na') $this->post->set('account', $this->config->global->community);
$param = http_build_query($params);
return $this->postAPI($apiURL . '?' . $param, $_POST);
}
/**
* Certify by API.
*
* @param string $type
* @access public
* @return string
*/
public function certifyByAPI($type)
{
$module = $type == 'mobile' ? 'sms' : 'mail';
//$apiURL = "http://www.zentao.net/{$module}-apiCertify.json";
$apiURL = "http://www.zentao.cn/{$module}-apiCertify.json";
$apiConfig = $this->getApiConfig();
$module = $type == 'mobile' ? 'sms' : 'mail';
$apiURL = $this->config->admin->apiRoot . "/{$module}-apiCertify.json";
$params['u'] = $this->config->global->community;
$params['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
$params[$apiConfig->sessionVar] = $apiConfig->sessionID;
$params['k'] = $this->getSignature($params);
$param = http_build_query($params);
return $this->postAPI($apiURL . '?' . $param, $_POST);
}
/**
* Get signature.
*
* @param array $params
* @access public
* @return string
*/
public function getSignature($params)
{
unset($params['u']);
@@ -172,6 +207,25 @@ class adminModel extends model
return md5(http_build_query($params) . md5($privateKey));
}
/**
* Get api config.
*
* @access public
* @return object
*/
public function getApiConfig()
{
if(!$this->session->apiConfig or time() - $this->session->apiConfig->serverTime > $this->session->apiConfig->expiredTime)
{
$config = file_get_contents($this->config->admin->apiRoot . "?mode=getconfig");
$config = json_decode($config);
if(empty($config) or empty($config->sessionID)) return null;
$this->session->set('apiConfig', $config);
}
return $this->session->apiConfig;
}
/**
* Get register information.
*