discuz QQ登录 20003问题

出现20003问题,
qq20003-1

 

此问题主要是因为 在获取token时候

http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token

造成失败导致。

在  source/plugin/manyou/Service/Client/ConnectOAuth.php的connectGetRequestToken 里面没有正常获取,如图

qq20003-2

 

public function connectGetRequestToken($callback, $clientIp = '') {

		$extra = array();

		$extra['oauth_callback'] = rawurlencode($callback);

		if ($clientIp) {
			$extra['oauth_client_ip'] = $clientIp;
		}
 
		$this->setTokenSecret('');
		$response = $this->_request($this->_requestTokenURL, $extra);
		 
		while( trim($response) == 'error_code=20003'     )
		{
			 $response = $this->_request($this->_requestTokenURL, $extra);
		}
		
	 

		parse_str($response, $params);


		//var_dump($params);die();

		if($params['oauth_token'] && $params['oauth_token_secret']) {
			return $params;
		} else {
			
			$params['error_code'] = $params['error_code'] ? $params['error_code'] : self::RESPONSE_ERROR;
			throw new Exception($params['error_code'], __LINE__);
		}

	}

nginx的godaddy ssl 证书配置

openssl genrsa -des3 -out server.key 2048
生成server.key

openssl rsa -in server.key -out server.key
去除server.key 里面密码

openssl req -new -key server.key -out server.csr
生成server.csr

提交server.csr 内容到godaddy,审核后下载zip文件
把里面的非gd_bundled的文件和server.key 合并为pem

cat bf5d584ffa226fa6.crt server.key > /etc/nginx/server.pem
cp server.key /etc/nginx/server.key

nginx的配置里面这样写

ssl on;
ssl_certificate /etc/nginx/server.pem;
ssl_certificate_key /etc/nginx/server.key;