dever 7 年之前
父節點
當前提交
9ea74180e5
共有 1 個文件被更改,包括 27 次插入9 次删除
  1. 27 9
      tm/lib/Controller/Login.class.php

+ 27 - 9
tm/lib/Controller/Login.class.php

@@ -27,7 +27,6 @@ class Login extends Controller{
 
     public function doGet() {
         $refer = Request::g ( 'referer' );
-        print_r($refer);die;
 
         $this->objMemcached->set($this->refer, $refer);
 
@@ -46,16 +45,37 @@ class Login extends Controller{
     }
 
     public function doCallback() {
-        $refer = $this->objMemcached->get($this->refer);
+        $token = $this->objMemcached->get('access_token');
+        $openid = $this->objMemcached->get('openid');
+        $data = array();
+
+        if ($token && $openid) {
+            $url = 'https://api.weixin.qq.com/sns/auth?access_token='.$token.'&openid='.$openid;
+            $result = $this->httpGet($url);
+            $result = json_decode($result, true);
+
+            if ($result['errmsg'] != 'ok') {
+                $token = false;
+                $openid = false;
+            } else {
+                $data['access_token'] = $token;
+                $data['openid'] = $openid;
+            }
+        }
 
-                print_r($refer);die;
-        $code = Request::g ( 'code' );
-        $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
+        if (!$token) {
+            $code = Request::g ( 'code' );
+            $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
 
-        $data = $this->httpGet($url);
-        $data = json_decode($data, true);
+            $data = $this->httpGet($url);
+            $data = json_decode($data, true);
+        }
 
         if (isset($data['access_token']) && $data['access_token']) {
+
+            $this->objMemcached->set('access_token', $data['access_token']);
+            $this->objMemcached->set('openid', $data['openid']);
+
             $url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $data['access_token'] . '&openid=' . $data['openid'] . '&lang=zh_CN';
 
             $data = $this->httpGet($url);
@@ -65,8 +85,6 @@ class Login extends Controller{
             if (isset($data['nickname']) && $data['nickname']) {
                 $refer = $this->objMemcached->get($this->refer);
 
-                print_r($refer);die;
-
                 $param = $data;
                 $param['uid'] = $data['openid'];
                 $refer .= '&' . http_build_url($param);