lvhao 11 hours ago
parent
commit
e40cf4acac

+ 23 - 4
core/CoreApp/controllers/Lyerpapi/v1/User.php

@@ -12,6 +12,7 @@ class User extends Lyapi_Controller{
        $this->load->_model("Model_logic_tools","logic_tools");
        $this->load->_model("Model_user",'user');
        $this->load->_model("Model_power",'power');
+       $this->load->_model("Model_wechat","wechat");
         
     }
 
@@ -25,10 +26,11 @@ class User extends Lyapi_Controller{
         $data = json_decode($json_str,true);
         $account = $data['account'];
         $pass = $data['pass'];
+        $code = $data['code'];
         $account = $this->logic_tools->toolsjiemi($account,"v!frlbpnjgir6alv","k!2w94m6jt!6ook4");
         $pass = $this->logic_tools->toolsjiemi($pass,"v!frlbpnjgir6alv","k!2w94m6jt!6ook4");
         $pass = sha1($pass);
-
+        $is_wxbd = 0;
         if(stripos($account,'lyzzz') !== false){
             $userid = explode('zzz',$account);
             $userid = $userid[1];
@@ -69,10 +71,26 @@ class User extends Lyapi_Controller{
                 $all_arr[] = $v['shortname'];
             }
         }
+        if(!empty($code)){
+            $r = $this->wechat->getopenid($code);
+            if($r['code'] == 1){
+                $wxopenid = json_decode($userinfo['wxopenid'],true);
+                $openid = $r['data']['openid'];
+                if(in_array($openid,$wxopenid)){
+                    $token = $openid;
+                    $is_wxbd = 1;
+                }else{
+                    $token = bin2hex(random_bytes(32));
+                }
+            }else{
+                $token = bin2hex(random_bytes(32));
+            }
+        }else{
+            // 生成唯一 token(可以用 JWT 或随机字符串)
+            $token = bin2hex(random_bytes(32));
+        }
 
-
-        // 生成唯一 token(可以用 JWT 或随机字符串)
-        $token = bin2hex(random_bytes(32));
+       
         // 写入缓存,有效期7200秒(2小时)
         $this->cache->save($token, [
             'userid'=>$userinfo['id'],
@@ -85,6 +103,7 @@ class User extends Lyapi_Controller{
         $this->_json_error("登陆成功",200,[
             'username'=>$userinfo['userid'],
             'mobile'=>'',
+            'is_wxbd'=>$is_wxbd,
             'token'=>$token,
             'lypower'=>implode(',',$all_arr)
         ]);

+ 6 - 0
core/CoreApp/controllers/Lyerpapi/v1/Wechat.php

@@ -72,6 +72,7 @@ class Wechat extends Lyapi_Controller{
             'username'=>$user_info['userid'],
             'mobile'=>'',
             'token'=>$openid,
+            'is_wxbd'=>1,
             'lypower'=>implode(',',$all_arr)
         ]);
         
@@ -107,6 +108,10 @@ class Wechat extends Lyapi_Controller{
             $this->_json_error('微信绑定错误,请联系管理员','500');
         }
         $user_info = $user_info_list[0];
+        $wxopenid = json_decode($user_info['wxopenid'],true);
+        if(!in_array($openid,$wxopenid)){
+            $this->_json_error('微信未绑定','500');
+        }
         $power = $this->power->read($user_info['power']);
         if(empty($power)){
             $this->_json_error('角色未设置','500');
@@ -135,6 +140,7 @@ class Wechat extends Lyapi_Controller{
             'username'=>$user_info['userid'],
             'mobile'=>'',
             'token'=>$openid,
+            'is_wxbd'=>1,
             'lypower'=>implode(',',$all_arr)
         ]);