dever 7 years ago
parent
commit
54ea02dd8b
2 changed files with 91 additions and 1 deletions
  1. 12 1
      project/op_dever/config.inc.php
  2. 79 0
      tm/lib/Controller/Passport.class.php

+ 12 - 1
project/op_dever/config.inc.php

@@ -57,7 +57,18 @@ return array(
         'appId' => 'wx1bd1c3bfc6b0515e',
         'appSecret' => '21f8ebe7b419a4920eb9b72532798523',
 	),
-	// passport签名key
+	// passport签名key 已无用
 	'passport_sign_key'	=> 'rD5carfCGbHAhF',
 	'passport_url' => 'http://'.$host.'/?c=Login&a=Get' ,
+
+	'passport_url' => 'http://'.$host.'/?c=Passport&a=Get' ,
+	'passport' => array
+	(
+		'url' => 'http://203.187.186.136:40000/saywashnew/WashCallApi/api/user/thirdpartyAuthorize.api',
+		//'url' => 'https://www.saywash.com/saywash/WashCallApi/api/user/thirdpartyAuthorize.api',
+		'param' => array
+		(
+			'authorizedCode' => 'fulishe',
+		),
+	),
 );

+ 79 - 0
tm/lib/Controller/Passport.class.php

@@ -0,0 +1,79 @@
+<?php
+namespace Cas\Controller;
+
+use KIF\Cache\Memcached;
+use KIF\Core\Config;
+use KIF\Core\Request;
+
+/**
+ * 
+ * passport 从第三方获取userid
+ * @author rabin
+ *
+ */
+class Passport extends Controller{
+    
+    private $config;
+    
+    public function __construct() {
+        $this->config = Config::getInstance()->get('passport');
+        //$this->objMemcached = new Memcached();
+        //$this->refer = 'passportRefer';
+    }
+
+    public function doGet() {
+        $refer = Request::g ( 'referer' );
+
+        //$this->objMemcached->set($this->refer, $refer);
+
+        $host = $this->config['url'];
+        $param = $this->config['param'];
+
+        $data = $this->httpPost($host, $param);
+
+        $data = json_decode($data, true);
+        /*
+        $data['data'] = array
+        (
+        	'nickName' => 'rabin',
+        	'avatar' => 'http://echarts.baidu.com/images/logo.png',
+        	'tokenId' => '111111',
+        );
+        */
+        if (isset($data['data']) && isset($data['data']['tokenId']) && $data['data']['tokenId']) {
+            $refer = urldecode($refer);
+            $refer = str_replace('&amp;', '&', $refer);
+
+            $param['nickname'] = $data['data']['nickName'];
+            $param['headimgurl'] = $data['data']['avatar'];
+            $param['uid'] = $data['data']['tokenId'];
+            $refer .= '&' . http_build_query($param);
+
+            header ( "Location: " . $refer);
+		} else {
+			print_r($data);die;
+		}
+    }
+
+    private function httpGet($url) {
+        $curl = curl_init();
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
+        curl_setopt($curl, CURLOPT_URL, $url);
+        $res = curl_exec($curl);
+        curl_close($curl);
+        return $res;
+    }
+
+    private function httpPost($url, $param) {
+        $curl = curl_init();
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_POST, 1);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
+        $res = curl_exec($curl);
+        curl_close($curl);
+        return $res;
+    }
+}