瀏覽代碼

feat(user): 微信小程序登录接口返回用户openid

- 调用微信jscode2session接口时同时获取session_key和openid
- 在登录响应中添加openid字段返回给客户端
- 解密手机号逻辑保持不变,仅增加openid数据处理
shichen 2 月之前
父節點
當前提交
9bbf0c4878
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      app/controller/api/user/UserMp.php

+ 6 - 2
app/controller/api/user/UserMp.php

@@ -95,7 +95,7 @@ class UserMp extends BaseController
95 95
             $appid = 'wx9082e5ac2fdb513f';
96 96
             $secret = 'e334c41e1c4aa962f65d1882092fbda6';
97 97
 
98
-            // 1. 调用微信 jscode2session 接口获取 session_key
98
+            // 1. 调用微信 jscode2session 接口获取 session_key 和 openid
99 99
             $url = "https://api.weixin.qq.com/sns/jscode2session?appid=" . $appid . "&secret=" . $secret . "&js_code=" . $data['code'] . "&grant_type=authorization_code";
100 100
             $wxResult = curlGet($url);
101 101
             if (!$wxResult || !isset($wxResult['session_key'])) {
@@ -103,6 +103,7 @@ class UserMp extends BaseController
103 103
                 return app('json')->fail('微信登录凭证校验失败');
104 104
             }
105 105
             $sessionKey = $wxResult['session_key'];
106
+            $openid = $wxResult['openid'] ?? '';
106 107
 
107 108
             // 2. 解密手机号
108 109
             $sessionKey = str_replace(' ', '+', $sessionKey);
@@ -173,7 +174,10 @@ class UserMp extends BaseController
173 174
             $tokenInfo = $repository->createToken($user);
174 175
             $repository->loginAfter($user);
175 176
 
176
-            return app('json')->success(array_merge($repository->returnToken($user, $tokenInfo), ['is_new' => $isnew ? 1 : 0]));
177
+            return app('json')->success(array_merge($repository->returnToken($user, $tokenInfo), [
178
+                'is_new' => $isnew ? 1 : 0,
179
+                'openid' => $openid,
180
+            ]));
177 181
 
178 182
         } catch (\Exception $e) {
179 183
             Db::name('log')->insert(['data' => 'mpLogin出错:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】']);